In computer simulation, we often do not want to have pure random
numbers because we would like to have the control of the random
numbers so that the experiment can be repeated.
In general, a systematic way to generate pseudo-random
number is used to generate the random numbers used in simulation. Some
algorithms are needed.
We generate the uniformly distributed random numbers first;
then we use this to generate random numbers of other distribution.
Some desired properties of pseudo-random number generators:
The routine should be fast.
The routine should be portable across hardware
platforms and programming languages.
The routine should have sufficiently long cycle.
A cycle length represents the length of
the random number sequence before previous numbers begin to repeat
themselves in an earlier order. For example
4,9,5,6,9,3,8, 4,9,5,6,9,3,8, 4,9,5,6,9,3,8, ...
appears to have a cycle length of 7 (this is just an example of cycle,
a random number of cycle 7 is completely unaccetable!).
A special case of cycling is degenerating
where the same random numbers appear repeatedly.
Because we use an algorithm to generate random
number, cycling cannot be avoided. But long cycles (e.g. a few
millions or a few billions) serve the purpose of general simulations.
The random numbers should be replicable.
Most importantly, the generated random numbers should
closely approximate the ideal statistical properties of uniformity and
independence.