https://github.com/michaeldzjap/rand-seed
A small seedable random number generator library written in TypeScript
https://github.com/michaeldzjap/rand-seed
javascript javascript-library random typescript typescript-library
Last synced: about 1 year ago
JSON representation
A small seedable random number generator library written in TypeScript
- Host: GitHub
- URL: https://github.com/michaeldzjap/rand-seed
- Owner: michaeldzjap
- License: mit
- Created: 2018-12-16T15:07:00.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-09-24T04:26:58.000Z (over 1 year ago)
- Last Synced: 2025-03-15T06:15:10.298Z (over 1 year ago)
- Topics: javascript, javascript-library, random, typescript, typescript-library
- Language: TypeScript
- Size: 1.74 MB
- Stars: 32
- Watchers: 2
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README




[](https://github.com/facebook/jest)
[](https://codecov.io/gh/michaeldzjap/rand-seed)
[](https://sonarcloud.io/dashboard?id=michaeldzjap_rand-seed)
[](https://github.com/michaeldzjap/rand-seed/blob/master/LICENSE)
# rand-seed
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](https://stackoverflow.com/a/47593316/7024747) (note that I am not the author of that post, I merely used it for the implementation of this library).
## Installation
This package is available through _npm_:
```
npm install --save rand-seed
```
## Usage
Either import directly
```html
```
or import in your own scripts using
```javascript
import Rand, { PRNG } from 'rand-seed';
```
Then simply create a new instance with an (optional) seed:
```javascript
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:
```javascript
// Create a new random number generator using the xoshiro128** algorithm
const rand = new Rand('1234', PRNG.xoshiro128ss);
```
## Example
A simple example is included. This may be run with _node_: `node example/index.js`