RNG to return a signed (but positive) value. This resulted in some
random numbers being interpreted as signed negative. In one case
the result was being used to traverse an array so bad things (tm)
were happening. The fix is to simply mask out the sign bit.
/* random routine -- set above using #ifdef _osname_ or in Makefile */
#if HASARC4RANDOM
-# define get_random() arc4random()
+# define get_random() (arc4random() & 0x7fffffff)
#else
# if HASRANDOM
# define get_random() random()