{{alias}}() Returns a pseudorandom number having an integer value. The default underlying pseudorandom number generator (PRNG) *may* change in the future. If exact reproducibility is required, either use the `factory` method to explicitly specify a PRNG via the `name` option or use an underlying PRNG directly. Returns ------- r: number Pseudorandom number. Examples -------- > var r = {{alias}}(); {{alias}}.factory( [options] ) Returns a pseudorandom number generator (PRNG) for generating pseudorandom numbers having integer values. Parameters ---------- options: Object (optional) Options. options.name: string (optional) Name of the underlying pseudorandom number generator (PRNG). The following PRNGs are supported: - mt19937: 32-bit Mersenne Twister. - minstd: linear congruential PRNG based on Park and Miller. - minstd-shuffle: linear congruential PRNG whose output is shuffled. Default: 'mt19937'. options.seed: any (optional) Pseudorandom number generator seed. Valid seed values vary according to the underlying PRNG. options.state: any (optional) Pseudorandom number generator state. Valid state values vary according to the underlying PRNG. If provided, the `seed` option is ignored. options.copy: boolean (optional) Boolean indicating whether to copy a provided pseudorandom number generator state. Setting this option to `false` allows sharing state between two or more pseudorandom number generators. Setting this option to `true` ensures that a returned generator has exclusive control over its internal state. Default: true. Returns ------- rand: Function Pseudorandom number generator (PRNG). Examples -------- // Basic usage: > var randi = {{alias}}.factory(); > var r = randi(); > r = randi(); // Specify alternative PRNG: > randi = {{alias}}.factory({ 'name': 'minstd' }); > r = randi(); > r = randi(); {{alias}}.NAME Generator name. Examples -------- > var str = {{alias}}.NAME 'randi' {{alias}}.PRNG Underlying pseudorandom number generator. Examples -------- > var prng = {{alias}}.PRNG; {{alias}}.MIN Minimum possible value (specific to underlying PRNG). Examples -------- > var v = {{alias}}.MIN; {{alias}}.MAX Maximum possible value (specific to underlying PRNG). Examples -------- > var v = {{alias}}.MAX; {{alias}}.seed Pseudorandom number generator seed. Examples -------- > var seed = {{alias}}.seed; {{alias}}.seedLength Length of generator seed. Examples -------- > var len = {{alias}}.seedLength; {{alias}}.state Generator state. Examples -------- > var r = {{alias}}() > r = {{alias}}() > r = {{alias}}() // Get a copy of the current state: > var state = {{alias}}.state; > r = {{alias}}() > r = {{alias}}() // Set the state: > {{alias}}.state = state; // Replay the last two pseudorandom numbers: > r = {{alias}}() > r = {{alias}}() {{alias}}.stateLength Length of generator state. Examples -------- > var len = {{alias}}.stateLength; {{alias}}.byteLength Size (in bytes) of generator state. Examples -------- > var sz = {{alias}}.byteLength; {{alias}}.toJSON() Serializes the pseudorandom number generator as a JSON object. Returns ------- out: Object JSON representation. Examples -------- > var o = {{alias}}.toJSON() { 'type': 'PRNG', 'name': '...', 'state': {...}, 'params': [] } See Also --------