A small seedable random number generator library written in TypeScript
The default Math.random()
function doesn't allow for setting a seed. This library offers a number of different semi-random number generators which may be initialised with an arbitrary seed in string format, hence, making it possible to produce sequences of semi-random numbers that are always the same for a given seed. The implemented algorithms are detailed here (note that I am not the author of that post, I merely used it for the implementation of this library).
This package is available through npm:
npm install --save rand-seed
Either import directly
<script src="path-to-rand-seed/rand-seed.js"></script>
or import in your own scripts using
import Rand, { PRNG } from 'rand-seed';
Then simply create a new instance with an (optional) seed:
const rand = new Rand('1234');
rand.next(); // Generate a new random number
If no seed is specified the call to rand.next()
will simply be forwarded to Math.random()
. In case of a supplied seed, the sfc32 algorithm will be used by default. Currently, three different algorithms are provided: sfc32, mulberry32 and xoshiro128**. If you would like to use a different algorithm, create a new instance like so:
// Create a new random number generator using the xoshiro128** algorithm
const rand = new Rand('1234', PRNG.xoshiro128ss);
A simple example is included. This may be run with node: node example/index.js