JSFiddle - React, Tailwind, and code Playground
by jeremenichelli
JavaScript
// shuffle method by Jeremias Menichelli
shuffle = function (arr) {
if (!!arr && arr.length > 1) {
var newArr = [],
origArr = arr.slice(),
len = arr.length;
while (len) {
newArr.push(origArr.splice(parseInt(Math.random() * len--), 1)[0]);
}
} else {
return arr ? arr.slice() : [];
}
return newArr;
}
// individual test
var origArr = [ 'a', 'b', 'c'];
var randomArr = shuffle(origArr);
console.log(origArr, 'original array');
console.info(randomArr, 'new shuffled array');
// test 1000 number of cases to check frequency distribution
var results = {};
for (var i = 0; i < 1000; i++) {
var str = shuffle(['a', 'b', 'c']).join('_');
if (typeof results[str] === 'undefined') {
results[str] = 1;
} else {
++results[str];
}
}
for (var r in results) {
results[r] = (results[r]/1000 * 100) + '%';
}
console.log(results)