Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 지정된 범위 사이의 난수를 생성하는 방법

JavaScript에서 최솟값과 최댓값 사이의 의사 난수(pseudorandom number)를 반환하는 함수를 만들어 보겠습니다. 함수 이름은 createRandom으로 하고, 두 개의 인수 minmax를 받으며, 이때 최댓값(max)은 범위에 포함되지 않습니다.

예제 코드

const min = 3;
const max = 9;
const createRandom = (min, max) => {
    const diff = max - min;
    const random = Math.random();
    return Math.floor((random * diff) + min);
}
console.log(createRandom(min, max));

코드 동작 원리

  • 범위 계산: 먼저 maxmin의 차이(diff)를 구합니다. 위 예제에서는 9 - 3 = 6이 됩니다.
  • 난수 생성: Math.random()을 사용해 0 이상 1 미만의 무작위 소수를 생성합니다.
  • 범위 확장: diff와 random 값을 곱하면 0 이상 diff 미만(0 ~ 6) 사이의 난수를 얻을 수 있습니다.
  • 기준점 이동: 여기에 min 값(3)을 더하면 최종적으로 min 이상 max 미만(3 ~ 9) 사이의 정수가 만들어집니다.

Math.floor()는 소수점 이하를 버려 정수로 만드는 역할을 하며, 덕분에 결과값은 항상 정수 형태로 반환됩니다.

실행 결과

콘솔에서 위 코드를 실행하면 다음과 같이 3 이상 9 미만의 임의의 정수가 출력됩니다.

6

이 방식은 Math.random()이 균등 분포를 따르기 때문에 범위 내 모든 정수가 거의 동일한 확률로 선택되는 장점이 있습니다. 게임 개발, 데이터 샘플링, 랜덤 UI 요소 생성 등 다양한 상황에서 활용할 수 있는 기본적인 패턴입니다.