diff --git a/lib/prng.ts b/lib/prng.ts new file mode 100644 index 0000000..6af760c --- /dev/null +++ b/lib/prng.ts @@ -0,0 +1,10 @@ +export type Prng = () => number; + +export function mulberry32(state: number) { + return function () { + let t = (state += 0x6d2b79f5); + t = Math.imul(t ^ (t >>> 15), t | 1); + t ^= t + Math.imul(t ^ (t >>> 7), t | 61); + return (t ^ (t >>> 14)) >>> 0; + }; +}