# Random number generation

## Detailed Description

Distributions

There are several functions which generate random variates from different distributions: uniform, exponential, normal, truncated normal, gamma, beta, Erlang, Weibull, Bernoulli, binomial, geometric, Poisson, and several more.

The functions rely on the random number generator described below.

The documentation of individual functions includes the generation method it uses. The description may refer to one of the following publications:

LawKelton: A.M. Law and W.D. Kelton, Simulation Modeling and Analysis, 3rd ed., McGraw Hill, 2000.

Banks: J. Banks: Handbook of Simulation, Wiley, 1998.

I have also found the web site http://www.xycoon.com extremely useful.

Random number generators

OMNeT++ provides several random number generators (streams) and several random number generator algorithms (default is cMersenneTwister). RNGs can be configured in omnetpp.ini.

RNGs are made available via the cRNG interface, and the cModule::rng() method. All functions returning random variates, etc. internally call cModule::rng() and cRNG::intRand(), cRNG::doubleRand().

## Classes

class | cRNG
| Abstract interface for random number generator classes. More...