UNPKG

array-shuffle

Version:
28 lines (21 loc) 630 B
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;