# Random Number Generation

The library provides a large collection of random number generators which can be accessed through a uniform interface. Environment variables allow you to select different generators and seeds at runtime, so that you can easily switch between generators without needing to recompile your program. Each instance of a generator keeps track of its own state, allowing the generators to be used in multi-threaded programs. Additional functions are available for transforming uniform random numbers into samples from continuous or discrete probability distributions such as the Gaussian, log-normal or Poisson distributions.

These functions are declared in the header file ``gsl_rng.h'`.

- General comments on random numbers
- The Random Number Generator Interface
- Random number generator initialization
- Sampling from a random number generator
- Auxiliary random number generator functions
- Random number environment variables
- Saving and restoring random number generator state
- Random number generator algorithms
- Unix random number generators
- Numerical Recipes generators
- Other random number generators
- Random Number Generator Performance
- Random Number Generator Examples
- Random Number References and Further Reading
- Random Number Acknowledgements