取最后一张,随机得到0~length-1的索引,与第一张交换位置
取导出第二张,随机得到0~length-1-1的索引,与第二张交换位置
以此类推
取导出第i张,随机得到0~length-i-1的索引,与第i张交换位置
const shuffle = arr => { const len = arr.length for (let i = 0; i < len; i++) { const replace = Math.floor(Math.random() * (len - i - 1)) ;[arr[i], arr[replace]] = [arr[replace], arr[i]] // arr.splice(i, 1, ...arr.splice(replace, 1, arr[i])) // swap } return arr } console.log(shuffle([1, 2, 3, 4, 5, 6]))