array-shuffle
Version:
Randomize the order of items in an array
28 lines (21 loc) • 630 B
JavaScript
export function arrayShuffle(array) {
if (!Array.isArray(array)) {
throw new TypeError(`Expected an array, got ${typeof array}`);
}
for (let index = array.length - 1; index > 0; index--) {
const newIndex = Math.floor(Math.random() * (index + 1));
[array[index], array[newIndex]] = [array[newIndex], array[index]];
}
return array;
}
export function arrayToShuffled(array) {
if (!Array.isArray(array)) {
throw new TypeError(`Expected an array, got ${typeof array}`);
}
if (array.length === 0) {
return [];
}
return arrayShuffle([...array]);
}
// TODO: Remove at some point.
export default arrayToShuffled;