Generating random numbers is a very challenging task. The result of any algorithm at best will be pseudo-random.
Linear Congruential Generators:
By choosing carefully three integer parameters, and
, we can generate a sequence of random numbers,
One of the shortcoming of such a method is that it has at most a period of order . In addition, the sequence can be highly correlated. In order to correct these problems we can extend this method to higher dimensions.
Combined Linear Congruential Generators:
A collection of carefully assigned triplets,
and
can be used to build a sequence of random numbers with a period of order $\prod_a M_a$. First we build $n$ parallel sequence of random numbers
then out of them we build a sequence of random numbers with better quality.
were is defined as
. Also a extra shuffling procedure can reduce the correlation in any sequence.
Lagged Fibonacci Generators:
We can use more than one of the previous number in building the next number in the sequence, e.g. . Finally they don’t need to be even sequential and can lag by any predetermined integers. For the Fibonacci generator to work properly we need a starter generator of other kind to build the first
random number (maximum lag) needed for Fibonacci algorithm.