Dave, did you know that computers never generate random numbers? Not at all, it's impossible for them to. This is because random is mathematically impossible, once an algorithm is developed to map out events it ceases to be random, because we just stop perceiving it as random. Computers simulate the unknown quantities by producing what we call pseudo-random values, based on a stored set of values in the chip set, these values are the response given whenever a "random" number is requested by the program. They are always in the exact same order, what changes is the starting location, often called the "seed." Seed values are typically determined by the clock value, the milliseconds since epoch typically, then the program uses that seed as the starting point in the list of numerical values. The best approach is to change the seed often, based on a specific queue from the program to poll the time value and apply that as the new seed.
However, no matter how well someone codes this, if you're keen on patterns you will see the pattern. I can see the pattern in video games all the time, to me, nothing in a computer game is ever random, because I spot the pattern and the queue becomes autonomic for me. It's one reason people don't like to play against me in any game that depends on the random method calls.
The point of all that, nothing, and I do mean nothing, in the universe is random, however, just because nothing is random doesn't mean everything has to have a "purpose."