Technique 1. One process can generate the pseudo-random numbers and send to other processes that need the random numbers. This is sequential.
Technique 2. Use a separate pseudo-random number generator on each process. Each process must use a different seed. This is embarrassingly parallel. The choice of seeds used at each process is important. Simply using the process id or time of the day can yield to bad distributions. One can use the /dev/random device driver in Linux to get good seeds.
Technique 3. Convert the linear generator such that each process only produces its share of random numbers. It is easier to control but requires more communication.
An Example
y0 = s;
yi+1 = a yi + c
We can convert it to a dependency on a number several positions back.
yi+k = ak+1 yi + (ak +
... + a2 + a + 1) c