ts_temp/array/shuffle.js
/**
* Creates an array of shuffled values
*
* @param {Array} arr The collection to shuffle.
* @returns {Array} Returns the new shuffled array.
* @example
*
* shuffle([1, 2, 3, 4]); // => [4, 1, 3, 2]
*/
export default (arr = []) => {
const len = arr.length;
const result = new Array(len);
for (let i = 0; i < len; i++) {
const rand = Math.floor(Math.random() * (i + 1));
if (rand !== i) {
result[i] = result[rand];
}
result[rand] = arr[i];
}
return result;
};