洗牌算法(Fisher–Yates高納德置亂算法)

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min) + min)
}

export function shuffle(arr) {
  let _arr = arr.slice();
  let len=_arr.length;
  for (let i = len; i > 0; i--) {
    let j = getRandomInt(0, i)
    let t = _arr[i]
    _arr[i] = _arr[j]
    _arr[j] = t
  }
  return _arr
}
相關文章
相關標籤/搜索