UNPKG

atomic-fns

Version:

Like Lodash, but for ESNext and with types. Stop shipping code built for browsers from 2015.

43 lines (42 loc) 1.27 kB
/** * This module implements pseudo-random generators for various distributions. * * @module random */ /** * Returns a random float between a [min, max) value (max exclusive). * @param {number} min * @param {number} max * @returns {number} */ export declare function random(min?: number, max?: number): number; /** * Returns a random integer between a [min, max] value (inclusive). * @param {number} min * @param {number} max * @returns {number} */ export declare function randomInt(min?: number, max?: number): number; /** * Returns the item at some random index in a sequence. * @returns {T} * @template T */ export declare function choice<T>(arr: T[]): T; /** * Returns a random sample of size k from a list of items. * @param {Array} arr * @param {number} size * @returns A new array with `size` random elements from `arr`. * @template T */ export declare function sample<T>(arr: T[], size: number): T[]; /** * Shuffles a collection elements in-place. Uses the Fisher-Yates algorithm for uniform shuffling. If collection is an Object it returns shuffled `Object.values()`. * * @param {Array} arr * @param {number} size * @returns The shuffled array. * @template T */ export declare function shuffle<T>(arr: T[], size?: number): T[];