2 Answers
2

What I suspect you're seeing is truly random (or, at least, sufficiently random) and your brain is trying to find patterns. (Everybody's brain tries to find patterns everywhere. That's how you're reading this. The issue is there are no patterns in randomness [that being pretty much the definition] for your brain to latch on to, so it invents some.)

If you really want to check your output for randomness, you'll need to do a statistical analysis of some kind or other.

there is no modulo bias in this example because it is modulo 2 and there are exactly the same number of even and odd numbers in the range 0..2^32-1
–
jjwchoyJun 5 '11 at 14:58

From the arc4random manpage: "arc4random_uniform() will return a uniformly distributed random number less than upper_bound. arc4random_uniform() is recommended over constructions like arc4random() % upper_bound as it avoids "modulo bias" when the upper bound is not a power of two". Since, in this case, upper_bound is a power of 2, modulo bias shouldn't be a problem.
–
splicerJun 10 '12 at 19:44

While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes.
–
tune2fsNov 15 '12 at 5:53