난수 생성기란?
난수 생성기(RNG)는 여러분이 정한 범위 안에서 예측할 수 없는 숫자를 만들어 줍니다. 이 도구는 최솟값과 최댓값 사이의 무작위 정수를 생성하며, 양쪽 끝 값도 모두 포함됩니다. 숫자를 한 개만 뽑을 수도 있고 여러 개를 한 번에 뽑을 수도 있으며, 같은 값이 다시 나오게 할지 여부도 직접 정할 수 있습니다. 경품 추첨, 로또식 번호 뽑기, 명단에서 당첨자 고르기, 조 편성, 주사위·게임 굴리기, 표본 추출 등 공정한 선택이 필요한 모든 순간에 유용합니다.
사용 방법
범위의 최솟값과 최댓값을 입력하고, 원하는 숫자 개수(1~100)를 정한 다음 중복 허용 여부를 선택하세요. 중복을 끄면 서로 다른 값만 나옵니다. 만약 범위가 제공할 수 있는 것보다 더 많은 숫자를 요청하면, 개수가 자동으로 뽑을 수 있는 값의 수만큼으로 조정됩니다.
계산 공식
정수 한 개를 뽑을 때 이 도구는 다음 식을 사용합니다.
$$x_i = \text{Min} + \left\lfloor \text{rand}() \times \left( \text{Max} - \text{Min} + 1 \right) \right\rfloor$$여기서 \(\text{rand}()\)는 [0, 1) 구간의 균일한 소수입니다. 범위 크기 \((\text{Max} - \text{Min} + 1)\)를 곱하고 내림(floor)하면 0부터 범위−1까지의 오프셋이 나오고, 여기에 \(\text{Min}\)을 더합니다. 이렇게 하면 양쪽 끝을 포함한 구간 안의 모든 정수가 똑같은 확률로 나옵니다. 여러 개를 뽑을 때는 이 과정을 반복하며, 중복을 허용하지 않으면 이미 뽑힌 값을 후보에서 제거해 다시 나오지 않도록 합니다.
예시로 보기
1부터 6까지 중에서 서로 다른 숫자 3개를 뽑고 싶다고 해 봅시다. 범위 크기는 \(6 - 1 + 1 = 6\)입니다. 생성기는 {1,2,3,4,5,6}에서 고른 값을 하나씩 제거하며 뽑으므로 4, 1, 6처럼 절대 겹치지 않는 세 숫자가 나올 수 있습니다. 중복을 허용하면 대신 4, 4, 1처럼 같은 값이 섞여 나올 수도 있습니다.
자주 묻는 질문
정말로 무작위인가요? 이 숫자는 의사난수(pseudo-random)입니다. 통계적으로 고르게 분포하도록 소프트웨어 알고리즘이 생성하며, 게임·추첨·일상적인 선택에는 충분하지만 암호화 용도로는 적합하지 않습니다.
최솟값과 최댓값도 나올 수 있나요? 네. 양쪽 끝 값 모두 결과로 나올 수 있으며, 구간은 양 끝을 포함합니다.
최솟값이 최댓값보다 크면 어떻게 되나요? 두 값이 자동으로 바뀌어 범위가 올바르게 유지됩니다.