implausible is a collection of pseudorandom number generators (PRNGs) and utilities powered by seedrandom.
RunKit provides one of the most direct ways to get started:
Declare imports and global binding in the JS section to get started:
import { prng } from 'https://unpkg.com/implausible@latest?module';
window.prng = prng;Run commands in the Console section:
prng();
// example output: 0.3722007770466942Insert the following element within the <head> tag of an HTML document:
<script src="https://unpkg.com/implausible@latest"></script>After the script is loaded, the implausible browser global is exposed:
implausible.prng();
// example output: 0.6736552471595748With npm installed, run terminal command:
npm i implausibleOnce installed, declare method imports at the top of each JavaScript file they will be used.
Recommended
import {
prng,
sample,
samples,
} from 'implausible';const {
prng,
sample,
samples,
} = require('implausible');prng();
// example output: 0.4471833625387327
prng();
// example output: 0.18700348375416123Refer to the list of PRNG names for valid parameter { name } values.
prng({ name: 'xor4096' });
// example output: 0.7105067998636514prng({ seed: 'hello.' });
// output: 0.9282578795792454
prng({ seed: 'hello.' });
// output: 0.9282578795792454Refer to the list of PRNG names for valid parameter { name } values.
prng({
name: 'xor4096',
seed: 'hello.',
});
// output: 0.9798525865189731sample({
collection: [
'heads',
'tails',
],
});
// example output: 'tails'Refer to the list of PRNG names for valid parameter { name } values.
sample({
collection: [
'heads',
'tails',
],
name: 'alea',
});
// example output: 'heads'sample({
collection: {
'A-': 6.3,
'A+': 35.7,
'AB-': 0.6,
'AB+': 3.4,
'B-': 1.5,
'B+': 8.5,
'O-': 6.6,
'O+': 37.4,
},
});
// example output: 'A+'Refer to the list of PRNG names for valid parameter { name } values.
sample({
collection: {
'A-': 6.3,
'A+': 35.7,
'AB-': 0.6,
'AB+': 3.4,
'B-': 1.5,
'B+': 8.5,
'O-': 6.6,
'O+': 37.4,
},
name: 'alea',
});
// example output: 'O+'sample({
collection: [
'heads',
'tails',
],
seed: 'hello.',
});
// output: 'tails'Refer to the list of PRNG names for valid parameter { name } values.
sample({
collection: [
'heads',
'tails',
],
name: 'tychei',
seed: 'hello.',
});
// output: 'heads'sample({
collection: {
'A-': 6.3,
'A+': 35.7,
'AB-': 0.6,
'AB+': 3.4,
'B-': 1.5,
'B+': 8.5,
'O-': 6.6,
'O+': 37.4,
},
seed: 'hello.',
});
// output: 'A-'Refer to the list of PRNG names for valid parameter { name } values.
sample({
collection: {
'A-': 6.3,
'A+': 35.7,
'AB-': 0.6,
'AB+': 3.4,
'B-': 1.5,
'B+': 8.5,
'O-': 6.6,
'O+': 37.4,
},
name: 'tychei',
seed: 'hello.',
});
// output: 'A+'The following names of pseudorandom number generators (PRNGs) are valid String inputs for the optional { name } parameter:
aleaarc4(default)tycheixor128xor4096xorshift7xorwow
All undefined seed are automatically generated by arc4 before being piped to other generators in stochastic mode.
Visit seedrandom documentation for comparative statistics on period and performance.
All parameters are optional properties of an optional Object.
| parameter | input type(s) | default | description |
|---|---|---|---|
name |
String |
arc4 |
Refer to the list of PRNG names for values. |
seed |
Number, String |
undefined (stochastic) |
Deterministic when provided, or stochastic when undefined. |
Generates a Number within range: [0, 1) (including 0 and excluding 1).
See also: samples
All parameters are properties of an Object.
| parameter | input type(s) | default | description |
|---|---|---|---|
collection (required) |
Array or Object of {String:Number} pairs |
Array: collection of outcomes with uniform (equally likely) probability distribution (i.e.: coin, dice). Object: histogram where the relative probability of sampling a key is determined by its Number value. |
|
name |
String |
arc4 |
Refer to the list of PRNG names for values. |
seed |
Number, String |
undefined (stochastic) |
Deterministic when provided, or stochastic when undefined. |
Generates a String weighted random sample from a collection member or key.
See also: sample
All parameters are properties of an Object.
| parameter | input type(s) | default | description |
|---|---|---|---|
collection (required) |
Array or Object of {String:Number} pairs |
Array: collection of outcomes with uniform (equally likely) probability distribution (i.e.: coin, dice). Object: histogram where the relative probability of sampling a key is determined by its Number value. |
|
count |
Number |
1 |
Sample size that determines output Array length. |
name |
String |
arc4 |
Refer to the list of PRNG names for values. |
seed |
Number, String |
undefined (stochastic) |
Deterministic when provided, or stochastic when undefined. |
Generates an Array of weighted random sample String from a collection member or key, similar to calling sample multiple times.
Thanks to David Bau and additional authors for distributing parent package seedrandom under the MIT license.