JavaScript에서 두 숫자 사이의 난수를 생성하려면 Math.random() 메서드를 사용합니다. Math.random()은 기본적으로 0 이상 1 미만의 부동소수점 난수를 반환하기 때문에, 원하는 범위의 정수 난수를 얻으려면 약간의 변환 과정이 필요합니다.
구현 예제
아래 코드는 최솟값(min)과 최댓값(max) 사이의 정수 난수를 생성하는 함수입니다. 직접 실행해 결과를 확인해 보세요.
<!DOCTYPE html>
<html>
<body>
<script>
function randomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
alert(randomInt(5,25));
</script>
</body>
</html>
코드 동작 원리
- Math.ceil(min) – 최솟값을 올림 처리하여 정수 경계로 맞춥니다.
- Math.floor(max) – 최댓값을 내림 처리하여 범위를 조정합니다.
- Math.random() * (max - min) – 0부터 (max − min) 사이의 실수 난수를 생성합니다.
- Math.floor(...) + min – 소수점을 버려 정수로 만든 뒤 min을 더해 최종 범위를 지정합니다.
위 예제를 실행하면 5 이상 25 미만의 정수 난수가 alert 창에 표시됩니다. 이 방식은 게임 개발, 랜덤 데이터 샘플링, UI 테스트 등 다양한 상황에서 유용하게 활용할 수 있습니다.