주어진 배열내의 요소들의 순서를 무작위로 바꾸는 함수.
[arr[0], arr[1], arr[2]] ==> [arr[n], arr[n], arr[n]]
ex) [1, 2, 3] ==> [1, 2, 3] or [1, 3, 2] or [2, 1, 3] or
[2, 3, 1] or [3, 1, 2] or [3, 2, 1]
_.shuffle = function (arr) {
// shuffle함수를 선언
let arrCloned = arr.slice();
// 변수 arrCloned선언하고 얕은복사본을 변수에 할당
for (let fromIdx = 0; fromIdx < arr.length; fromIdx++) {
//배열의 요소의 접근
const toIdx = Math.floor(Math.random() * arr.length);
// toIdx변수선언 난수와 배열의 길이를 곱하고 정수로 반환한값을 변수에 할당.
let temp = arrCloned[fromIdx];
arrCloned[fromIdx] = arrCloned[toIdx];
arrCloned[toIdx] = temp;
}// temp선언 값들을 재할당
return arrCloned;
}
Math.random()은 0이상 1미만의 랜점숫자를 생성