UNPKG

@lou.codes/iterables

Version:
24 lines (23 loc) 906 B
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>>;