이 도구의 기능
이 랜덤 숫자 생성기는 뽑기 버튼을 누를 때마다 1부터 100 사이의 정수 하나를 뽑아줍니다. 범위가 1~100으로 고정되어 있어 따로 입력할 칸이 없습니다. 그냥 버튼을 누르고 큼지막하게 표시되는 숫자를 확인하면 됩니다. "Pick # N"으로 표시되는 작은 카운터는 마지막 초기화 이후 몇 번이나 숫자를 뽑았는지 세어주므로, 게임이나 추첨, 수업 활동, 표본 추출, 혹은 그냥 무언가를 정할 때 요긴하게 쓸 수 있습니다.
사용 방법
뽑기를 누르면 새 숫자가 나옵니다. 매번 뽑기는 서로 독립적인 추첨이므로, 여러 번 뽑다 보면 같은 값이 다시 나올 수도 있습니다(오류가 아니라 정상적인 동작입니다). 초기화를 누르면 카운터가 0으로 돌아가며, 그다음 뽑기는 "Pick # 1"로 표시됩니다.
계산 공식 설명
이 생성기는 균등 분포 정수를 만드는 표준 공식을 사용합니다: $$\text{randomNumber} = \text{min} + \left\lfloor U \times (\text{max}-\text{min}+1) \right\rfloor$$ 여기서 \(U\)는 반열린구간 [0, 1)에 속하는 의사 난수(부동소수점)입니다. min = 1, max = 100일 때 공식은 $$\text{randomNumber} = 1 + \left\lfloor U \times 100 \right\rfloor$$이 됩니다. 반올림이 아니라 버림(floor)을 쓰는 이유는 모든 정수가 똑같은 확률을 갖도록 하기 위해서입니다. 반올림을 쓰면 양 끝 숫자의 확률이 한쪽으로 치우치게 됩니다. \(U\)는 1에 결코 도달하지 못하므로 \(\left\lfloor U \times 100 \right\rfloor\)의 최댓값은 99이고, 따라서 결과는 정확히 100까지만 나오며 101은 절대 나오지 않습니다. 결국 모든 숫자는 \(\frac{1}{100} = 0.01 = 1\%\)로 동일한 확률을 갖습니다.
예시로 보는 계산
엔진이 U = 0.752를 만들어냈다고 가정해 봅시다. 그러면 $$\text{randomNumber} = 1 + \left\lfloor 0.752 \times 100 \right\rfloor = 1 + \left\lfloor 75.2 \right\rfloor = 1 + 75 = \mathbf{76}$$이 되고, "Pick # 1"로 표시됩니다. 다시 뽑기를 눌러 U = 0.009가 나오면 \(1 + \left\lfloor 0.9 \right\rfloor = 1 + 0 = \mathbf{1}\)이 되어 "Pick # 2"로 표시됩니다.
자주 묻는 질문
같은 숫자가 두 번 나올 수 있나요? 네, 가능합니다. 매 뽑기는 독립적이므로 서로 다른 뽑기에서 같은 값이 중복으로 나오는 것은 정상이며 유효한 결과입니다.
1과 100도 나올 수 있나요? 네, 양쪽 끝 값 모두 포함됩니다. 정확히 1이나 정확히 100도 뽑힐 수 있습니다.
암호학적으로 안전한가요? 아닙니다. 이것은 의사 난수 생성기(PRNG)로, 게임이나 일상적인 선택에는 적합하지만 보안 용도, 현금이 걸린 복권, 암호화에는 적합하지 않습니다.