A Generating Pseudo-Random Numbers and Random Variates

Learning Objectives

  • To be able to describe and use linear congruential pseudo-random number generation methods

  • To be aware of current state of the art pseudo-random number generation methods

  • To be able to define and use key terms in pseudo-random number generation methods such as streams, seeds, period, etc.

  • To be able to explain the key issues in pseudo-random number testing

  • To be able to derive and implement an inverse cumulative distribution function based random variate generation algorithm

  • To be able to explain and implement the convolution algorithm for random variate generation

  • To be able to explain and implement the acceptance rejection algorithm for random variate generation

Randomness in simulation is often modeled by using random variables and probability distributions. Thus, simulation languages require the ability to generate random variates. A random variate is an instance (or realization) of a random variable. In this section, you will learn how simulation languages allow for the generation of randomness. Generating randomness requires algorithms that permit sequences of numbers to act as the underlying source of randomness within the model. Then, given a good source of randomness, techniques have been established that permit the sequences to be transformed so that they can represent a wide variety of random variables (e.g. normal, Poisson, etc.). The algorithms that govern these procedures are described in the second part of this chapter.