@lou.codes/iterables
Version:
🔁 Iterable and AsyncIterable utils
24 lines (23 loc) • 906 B
TypeScript
import type { Numeric } from "@lou.codes/types";
/**
* Deterministic pseudo-random number generator.
*
* **⚠️ IMPORTANT:** This only works in secure contexts (HTTPS/Node).
*
* @category Asynchronous Generators
* @example
* ```typescript
* const seededRandom = random("some seed");
* const random0To10 = seededRandom(0)(10);
*
* [...pick(2)(random0To10)]; // Two "random" values between 0 and 10
* [...pick(2)(random0To10)]; // Same two "random" values between 0 and 10
* ```
* @see [SubtleCrypto#digest](https://mdn.io/SubtleCrypto.digest)
* @see [cryptoNumber](https://lou.codes/libraries/lou_codes_utils/#cryptonumber)
* @param seed Seed to be used to generate random numbers.
* @returns Curried generator function with `seed` set in context.
*/
export declare const random: (
seed: Numeric | string,
) => (from: number) => (to: number) => Readonly<AsyncIterableIterator<number>>;