본문으로 건너뛰기

난수 만들기

임의의 확률을 사용해 작업을 처리하거나 애니메이션에 임의의 값을 부여할 때 사용합니다.

구문

Math.random(): 부동 소수점의 유사 난수를 반환(0 ~ 1 미만)

예시

Math.random(); // 0 이상 1 미만의 임의의 소수
Math.floor(Math.random() * 100); // 0 이상 100 미만 임의의 정수
Math.ceil(Math.random() * 6); // 육면체 주사위 게임 숫자 만들기

안전한 난수 사용

crypto.getRandomValues(타입지정배열): 난수의 배열을 반환

비밀번호 등 정보 보호가 중요한 문자열을 생성할 때는 Math.random()보다 crypto.getRandomValues()를 사용합니다. 인수에 타입 지정 배열과 값을 전달하면 값의 난수 배열을 생성합니다.

// 임의의 정수(부호없는 16비트) 10개가 들어 있는 배열을 생성
// ex: [8918, 24331, 62391, 43956, 73964 ...
const randomArray1 = crypto.getRandomValues(new Uint16Array(10));
// 배열의 요소를 연결하여 난수를 생성
// ex: 891824331623914395673964...
randomArray1.join('');

// 부호없는 32비트의 배열 난수를 생성
// ex: 6573902034856720948934853894...
crypto.getRandomValues(new Uint32Array(10)).join('');