Wonder if t related to the use of banker's rounding?
i.e. rndint (x-0.5); would be expected to 'always round 'x' downwards, except that alternate integer values of 'x' will then round to the same output value.
Though that doesn't explain why values <7F should still be correct.
Feel free to use any schematics and algorithms I post on the forum in your own designs - a credit is appreciated (but not a requirement).
Don't stagnate, mutate to create. Without randomness and serendipity the earth would be just another barren rock.