랜덤 숫자 생성 방법
랜덤 숫자 생성기는 지정된 범위와 조건에서 무작위 숫자를 생성하는 도구입니다. 추첨, 게임, 통계 표본 추출 등에 활용됩니다.
사용법
- 최소값/최대값 입력 — 숫자를 뽑을 범위를 지정합니다.
- 개수 입력 — 몇 개의 숫자를 생성할지 정합니다.
- 중복 허용 여부 선택 — 같은 숫자 중복 가능 여부.
- 생성 버튼 클릭 — 결과가 즉시 표시됩니다.
활용 예시별 설정
| 용도 | 최소 | 최대 | 개수 | 중복 | 확률 |
|---|---|---|---|---|---|
| 로또 6/45 | 1 | 45 | 6 | 불허 | 1/8,145,060 |
| 동전 던지기 (앞1/뒤2) | 1 | 2 | 1 | 허용 | 1/2 |
| 주사위 1개 | 1 | 6 | 1 | 허용 | 1/6 |
| 주사위 2개 | 1 | 6 | 2 | 허용 | 각 1/6 |
| 당첨자 추첨 (30명 중 5명) | 1 | 30 | 5 | 불허 | 각 1/6 ~ 1/26 |
| 조 편성 (20명, 5개조) | 1 | 20 | 20 | 불허 | 셔플 후 4명씩 |
| 카드 뽑기 | 1 | 52 | 1 | 허용 | 1/52 |
| 비밀번호 숫자 | 0 | 9 | 6 | 허용 | 10^6 = 100만 가지 |
확률 기본 공식
| 상황 | 공식 | 예시 |
|---|---|---|
| 특정 숫자 1개 선택 확률 | 1/N | 1~45에서 특정 수: 1/45 |
| 중복 불허 k개 선택 (순서 무관) | 1/C(N,k) | 로또: 1/C(45,6) = 1/8,145,060 |
| 중복 허용 k개 선택 | 1/N^k | 4자리 PIN: 1/10^4 = 1/10,000 |
확률 계산 예시
예시 1: 로또 6/45 당첨 확률
- 45개 중 6개를 순서 없이 선택: C(45,6) = 45! / (6! × 39!) = 8,145,060
- 1등 확률: 1/8,145,060 (약 0.0000123%)
- 매주 1장씩 산다면 평균 156,636년에 1번 당첨
예시 2: 주사위 2개 합이 7이 될 확률
- 전체 경우의 수: 6 × 6 = 36
- 합이 7인 경우: (1,6), (2,5), (3,4), (4,3), (5,2), (6,1) = 6가지
- 확률: 6/36 = 1/6 ≈ 16.7%
예시 3: 30명 중 5명 추첨에서 내가 뽑힐 확률
- 확률: 5/30 = 1/6 ≈ 16.7%
Fisher-Yates 셔플 알고리즘
중복 없는 숫자 생성에는 Fisher-Yates(Knuth) 셔플 알고리즘을 사용합니다.
알고리즘 단계:
- 배열 [1, 2, 3, ..., N]을 생성
- 마지막 원소부터 시작하여 랜덤한 위치의 원소와 교환
- 두 번째 마지막 원소로 이동하여 반복
- 앞에서 필요한 k개만 취함
이 방식은 모든 순열이 동일한 확률로 나타나는 편향 없는(unbiased) 셔플을 보장합니다. 시간 복잡도는 O(n)입니다.
난수의 종류
| 유형 | 방식 | 용도 | 예시 |
|---|---|---|---|
| 의사 난수 (PRNG) | 알고리즘 기반 | 게임, 시뮬레이션, 추첨 | Math.random() |
| 암호학적 난수 (CSPRNG) | 하드웨어 엔트로피 | 암호화, 보안 키 | crypto.getRandomValues() |
| 진정한 난수 (TRNG) | 물리적 현상 | 과학 실험, 복권 | 대기 노이즈, 방사성 붕괴 |
주요 복권·게임 확률 비교
| 게임 | 방식 | 1등 확률 | 비교 |
|---|---|---|---|
| 로또 6/45 | 45개 중 6개 | 1/8,145,060 | 벼락 맞을 확률의 약 80배 |
| 연금복권 | 7자리 번호 일치 | 1/5,000,000 | 로또보다 약간 유리 |
| 스포츠토토 | 경기 결과 예측 | 경우에 따라 상이 | 분석 가능 |
| 동전 10회 연속 앞 | 10회 연속 | 1/1,024 | 약 0.1% |
| 생일 같은 사람 (23명) | 생일 역설 | 약 50% | 직관보다 높음 |
실용 팁
- 추첨 공정성 — 공정한 추첨을 위해 중복 불허 모드를 사용하고, 첫 번째 결과를 확정하세요.
- 로또 번호 참고 — 모든 번호 조합의 확률은 동일하므로, '운 좋은 번호'는 존재하지 않습니다.
- 조 편성 활용 — 전체 인원을 셔플한 뒤 순서대로 N명씩 나누면 공정한 조 편성이 가능합니다.
- 표본 추출 — 설문 조사 등에서 무작위 표본을 추출할 때 중복 불허 모드를 사용하세요.
- 보안 주의 — 비밀번호 생성에 이 도구를 사용할 때는 숫자만으로는 보안이 약하므로, 영문+숫자+특수문자를 조합하세요.
참고
- Fisher, R. A. & Yates, F. (1938). "Statistical Tables for Biological, Agricultural and Medical Research"
- Knuth, D. E. (1997). "The Art of Computer Programming, Volume 2: Seminumerical Algorithms"
- random.org: 대기 노이즈 기반 진정한 난수 생성 서비스
※ 이 계산기는 의사 난수(PRNG) 기반으로, 일반적인 추첨·게임 용도에 적합합니다. 암호학적 보안이 필요한 용도에는 적합하지 않습니다.