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
TypeScript
/**
* 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[];