# Random Number Generators and Functions Related to Randomness

# Introduction

- Predefined Constants
- Examples
- Random Functions
  - getrandmax — Show largest possible random value
  - lcg_value — Combined linear congruential generator
  - mt_getrandmax — Show largest possible random value
  - mt_rand — Generate a random value via the Mersenne Twister Random Number Generator
  - mt_srand — Seeds the Mersenne Twister Random Number Generator
  - rand — Generate a random integer
  - random_bytes — Get cryptographically secure random bytes
  - random_int — Get a cryptographically secure, uniformly selected integer
  - srand — Seed the random number generator
- Random\Randomizer — The Random\Randomizer class
  - Random\Randomizer::__construct — Constructs a new Randomizer
  - Random\Randomizer::getBytes — Get random bytes
  - Random\Randomizer::getBytesFromString — Get random bytes from a source string
  - Random\Randomizer::getFloat — Get a uniformly selected float
  - Random\Randomizer::getInt — Get a uniformly selected integer
  - Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)
  - Random\Randomizer::nextInt — Get a positive integer
  - Random\Randomizer::pickArrayKeys — Select random array keys
  - Random\Randomizer::__serialize — Serializes the Randomizer object
  - Random\Randomizer::shuffleArray — Get a permutation of an array
  - Random\Randomizer::shuffleBytes — Get a byte-wise permutation of a string
  - Random\Randomizer::__unserialize — Deserializes the data parameter into a Randomizer object
- Random\IntervalBoundary — The Random\IntervalBoundary Enum
- Random\Engine — The Random\Engine interface
  - Random\Engine::generate — Generates randomness
- Random\CryptoSafeEngine — The Random\CryptoSafeEngine interface
- Random\Engine\Secure — The Random\Engine\Secure class
  - Random\Engine\Secure::generate — Generate cryptographically secure randomness
- Random\Engine\Mt19937 — The Random\Engine\Mt19937 class
  - Random\Engine\Mt19937::__construct — Constructs a new Mt19937 engine
  - Random\Engine\Mt19937::__debugInfo — Returns the internal state of the engine
  - Random\Engine\Mt19937::generate — Generate 32 bits of randomness
  - Random\Engine\Mt19937::__serialize — Serializes the Mt19937 object
  - Random\Engine\Mt19937::__unserialize — Deserializes the data parameter into a Mt19937 object
- Random\Engine\PcgOneseq128XslRr64 — The Random\Engine\PcgOneseq128XslRr64 class
  - Random\Engine\PcgOneseq128XslRr64::__construct — Constructs a new PCG Oneseq 128 XSL RR 64 engine
  - Random\Engine\PcgOneseq128XslRr64::__debugInfo — Returns the internal state of the engine
  - Random\Engine\PcgOneseq128XslRr64::generate — Generate 64 bits of randomness
  - Random\Engine\PcgOneseq128XslRr64::jump — Efficiently move the engine ahead multiple steps
  - Random\Engine\PcgOneseq128XslRr64::__serialize — Serializes the PcgOneseq128XslRr64 object
  - Random\Engine\PcgOneseq128XslRr64::__unserialize — Deserializes the data parameter into a PcgOneseq128XslRr64 object
- Random\Engine\Xoshiro256StarStar — The Random\Engine\Xoshiro256StarStar class
  - Random\Engine\Xoshiro256StarStar::__construct — Constructs a new xoshiro256** engine
  - Random\Engine\Xoshiro256StarStar::__debugInfo — Returns the internal state of the engine
  - Random\Engine\Xoshiro256StarStar::generate — Generate 64 bits of randomness
  - Random\Engine\Xoshiro256StarStar::jump — Efficiently move the engine ahead by 2^128 steps
  - Random\Engine\Xoshiro256StarStar::jumpLong — Efficiently move the engine ahead by 2^192 steps
  - Random\Engine\Xoshiro256StarStar::__serialize — Serializes the Xoshiro256StarStar object
  - Random\Engine\Xoshiro256StarStar::__unserialize — Deserializes the data parameter into a Xoshiro256StarStar object
- Random\RandomError — The Random\RandomError class
- Random\BrokenRandomEngineError — The Random\BrokenRandomEngineError class
- Random\RandomException — The Random\RandomException class

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open