Yet another random library
npm install extra-randsh
npm install --save extra-rand
or
yarn add extra-rand
`API
`ts
interface IRandomNumberGenerator {
next(): number // [0, 1)
}
`$3
`ts
function randomFloat(min: number, max: number): number
function randomFloat(generator: IRandomNumberGenerator, min: number, max: number): number
`The function returns a float in the range
[min, max).$3
`ts
function randomInt(min: number, max: number): number
function randomInt(generator: IRandomNumberGenerator, min: number, max: number): number
`The function returns an integer in the range
[Math.ceil(min), Math.floor(max)).$3
`ts
function randomIntInclusive(min: number, max: number): number
function randomIntInclusive(
generator: IRandomNumberGenerator
, min: number
, max: number
): number
`The function returns an integer in the range
[Math.ceil(min), Math.floor(max)].$3
`ts
enum NumberType {
Float
, Integer
, IntegerInclusive
}type INumberModel =
| number
| Getter
| {
type: NumberType
min: number
max: number
}
| NonEmptyArray<{
weight: number
model: INumberModel
}>
function randomNumber(model: INumberModel): number
function randomNumber(generator: IRandomNumberGenerator, model: INumberModel): number
`$3
`ts
function randomBool(probabilityOfTrue: number): boolean
function randomBool(generator: IRandomNumberGenerator, probabilityOfTrue: number): boolean
`$3
`ts
function randomPickItem(items: NonEmptyArray): T
function randomPickItem(
generator: IRandomNumberGenerator
, items: NonEmptyArray
): T
`$3
`ts
interface IWeightedItem {
weight: number
}function randomPickWeightedItem(items: NonEmptyArray, weights: NonEmptyArray): T
function randomPickWeightedItem(items: NonEmptyArray): T
function randomPickWeightedItem(
generator: IRandomNumberGenerator
, items: NonEmptyArray
, weights: NonEmptyArray
): T
function randomPickWeightedItem(
generator: IRandomNumberGenerator
, items: NonEmptyArray
): T
`$3
`ts
function randomPickIndex(items: NonEmptyArray): number
function randomPickIndex(
generator: IRandomNumberGenerator
, items: NonEmptyArray
): number
`The function returns an integer in the range
[0, items.length].$3
`ts
function randomPickWeightedIndex(weights: NonEmptyArray): number
function randomPickWeightedIndex(
generator: IRandomNumberGenerator
, weights: NonEmptyArray
): number
`The function returns an integer in the range
[0, weights.length].$3
`ts
function shuffle(arr: unknown[]): void
function shuffle(generator: IRandomNumberGenerator, arr: unknown[]): void
``