elm-community/random-extra/3.0.0

NOTE: the latest version is 3.2.0

Random.Array

Extra randomized functions on arrays.

Create an Array

array : Int -> Generator a -> Generator (Array a)

Generate a random array of given size given a random generator

randomLength5IntArray =
    array 5 (int 0 100)
rangeLengthArray : Int -> Int -> Generator a -> Generator (Array a)

Generate a random array of random length given a minimum length and a maximum length.

Work with an Array

sample : Array a -> Generator (Maybe a)

Sample with replacement: produce a randomly selected element of the array, or Nothing for an empty array. Takes O(1) time.

choose : Array a -> Generator ( Maybe a, Array a )

Sample without replacement: produce a randomly selected element of the array, and the array with that element omitted (shifting all later elements down). If the array is empty, the selected element will be Nothing.

shuffle : Array a -> Generator (Array a)

Shuffle the array using the Fisher-Yates algorithm. Takes O(n log n) time and O(n) additional space.