마무리
이 장에서 배운 내용을 정리해 보겠습니다.
1. 피셔-예이츠 셔플 알고리즘
숫자를 무작위로 섞는 방법입니다. 무작위 인덱스를 하나 뽑은 후, 그에 해당되는 요소를 새로운 배열로 옮깁니다. 이를 반복하다 보면 새 배열에 무작위로 섞인 숫자들이 들어갑니다.
const candidate = Array(45).fill().map((v, i) => i + 1);
const shuffle = [];
while (candidate.length > 0) {
const random = Math.floor(Math.random() * candidate.length); // 무작위 인덱스 뽑기
const spliceArray = candidate.splice(random, 1); // 뽑은 값을 새로운 배열에 넣기
const value = spliceArray[0]; // 새로운 배열에 들어 있는 값 꺼내기
shuffle.push(value); // 꺼낸 값을 shuffle 배열에 넣기
}
console.log(shuffle);