자바스크립트에서 난수를 생성하려면 Math.random() 메서드를 사용합니다. 이 메서드는 0 이상 1 미만의 부동소수점 숫자를 반환하기 때문에, 원하는 범위의 정수를 얻으려면 약간의 계산 과정이 필요합니다.
특정 범위의 정수 생성 공식
최솟값(min)과 최댓값(max) 사이의 임의의 정수를 생성하려면 아래 공식을 사용합니다.
Math.floor(Math.random() * (max - min + 1)) + min;
여기서 (max - min + 1)은 생성 가능한 정수의 개수를 의미하고, Math.floor()는 소수점 이하를 버려 정수로 만들어 줍니다. 마지막으로 min을 더해주면 결과값이 항상 지정한 범위 안에 포함됩니다.
예제
다음 예제는 2부터 6 사이의 임의의 정수를 생성하여 화면에 출력합니다.
<!DOCTYPE html> <html> <body> <script> var max = 6; var min = 2; var random = Math.floor(Math.random() * (max - min + 1)) + min; document.write(random); </script> </body> </html>
코드 설명
- max = 6, min = 2 : 난수가 생성될 범위의 최댓값과 최솟값을 설정합니다.
- Math.random() * (max - min + 1) : 0 이상 5 이하의 실수를 만듭니다. (+1을 해야 max 값도 포함됩니다.)
- Math.floor(...) : 소수점을 버려 0~5 사이의 정수로 변환합니다.
- + min : 여기에 min(2)을 더해 최종적으로 2~6 사이의 정수가 됩니다.
페이지를 새로고침할 때마다 2, 3, 4, 5, 6 중 하나의 값이 무작위로 출력되는 것을 확인할 수 있습니다. 주사위 게임, 랜덤 선택 기능 등 다양한 상황에서 활용할 수 있는 유용한 기법입니다.