1.利用数组中的sort()方法:
arr = arr.sort(() => Math.random() - 0.5);
2.Fisher-Yates Shuffle,复杂度为O(n)。从后向前遍历,不断将当前元素与随机位置的元素(除去已遍历的部分)进行交换
function shuffle(arr) {
let m = arr.length;
while (m > 1){
let index = Math.floor(Math.random() * m--);
[arr[m] , arr[index]] = [arr[index] , arr[m]]
}
return arr;
}
借鉴了一位知乎老哥的面试题:https://zhuanlan.zhihu.com/p/83967005