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 rand-seedEither 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 numberIf 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. The example is given in two different module systems (Common JS and ES Modules). To run the example,
build the project with the npm run prod command. Then, you may run one of the examples with node: node example/cjs/index.cjs
to run a Common JS example or node example/es/index.js to run a ES Modules example.