랜덤 추첨기
🔢 계산/생성숫자 범위나 목록에서 무작위로 뽑아 줍니다. 이벤트 당첨자·발표 순서·점심 메뉴 결정에 활용.
🎲 랜덤 추첨기란?
랜덤 추첨기는 지정한 범위에서 무작위 숫자를 뽑거나 목록에서 항목을 추첨하는 도구입니다. 로또 번호 생성, 제비뽑기, 당첨자 선정, 순서 정하기 등 다양한 상황에 활용할 수 있습니다.crypto.getRandomValues를 사용하여 예측 불가능한 진정한 무작위 결과를 제공합니다. 최대 10개의 추첨 기록을 저장하여 이전 결과를 확인할 수 있습니다.
💡 핵심 포인트
암호학적 난수를 사용해 Math.random()보다 훨씬 공정한 결과를 보장합니다.
📊 추첨 모드 비교
| 모드 | 입력 | 활용 예시 |
|---|---|---|
| 숫자 추첨 | 최소값~최대값, 개수 | 로또 번호, 랜덤 숫자 게임 |
| 리스트 추첨 | 항목 목록 (줄바꿈) | 당첨자 선정, 순서 정하기 |
| 중복 허용 | 숫자 모드 옵션 | 주사위 시뮬레이션 |
| 중복 불허 | 숫자 모드 기본값 | 로또, 추첨 당첨자 |
🔐 Math.random()과 뭐가 다른가
자바스크립트의 Math.random()은 시드값에서 수식으로 숫자를 만들어내는 의사난수(pseudo-random)입니다. 충분히 무작위처럼 보이지만 알고리즘이 정해져 있어 이론적으로는 다음 값을 추정할 여지가 있습니다. 이 도구가 쓰는 crypto.getRandomValues()는 운영체제가 수집한 예측 불가능한 물리적 잡음을 바탕으로 값을 만듭니다.
| 항목 | Math.random() | crypto.getRandomValues() |
|---|---|---|
| 방식 | 수식 기반 의사난수 | OS 엔트로피 기반 |
| 예측 가능성 | 이론상 추정 가능 | 사실상 불가능 |
| 속도 | 매우 빠름 | 약간 느림 |
| 적합한 용도 | 애니메이션, 간단한 셔플 | 추첨, 토큰 생성 |
경품 추첨처럼 결과에 이해관계가 걸린 상황에서는 후자를 쓰는 편이 안전합니다. 체감 차이는 없지만 "조작이 아니냐"는 논란의 여지를 줄일 수 있습니다.
🎯 공정한 추첨을 위한 준비
난수 자체보다 운영 방식에서 시비가 붙는 경우가 훨씬 많습니다. 이런 점들을 미리 정해두세요.
- 명단을 먼저 확정 — 추첨을 돌린 뒤 명단을 고치면 결과 신뢰도가 무너집니다. 참가자 목록을 먼저 공개하세요.
- 중복 이름 정리 — 동명이인이 있으면 번호를 붙여 구분해야 당첨자가 명확해집니다.
- 재추첨 규칙 사전 공지 — "당첨자가 응답 없으면 며칠 뒤 재추첨" 같은 기준을 미리 알려두면 분쟁이 줄어듭니다.
- 한 번에 뽑기 — 한 명씩 여러 번 돌리기보다 필요한 인원수만큼 한 번에 뽑는 편이 깔끔합니다.
- 과정 공개 — 화면을 공유하거나 녹화하면 결과에 대한 신뢰가 크게 올라갑니다.
💡 활용 팁
- 로또 번호: 빠른 설정의 "로또" 버튼으로 1~45 중 6개 즉시 추첨
- 팀 순서: 팀원 이름을 리스트에 입력하고 발표 순서 결정
- 경품 추첨: 참가자 명단 입력 후 당첨자 수만큼 추첨
- 과제 배분: 과제 목록 입력 후 랜덤 배분
자주 묻는 질문
랜덤 결과가 정말 무작위인가요?▼
crypto.getRandomValues() API를 사용하여 암호학적으로 안전한 진정한 난수를 생성합니다. Math.random()보다 예측 불가능하고 공정한 결과를 제공합니다.
같은 숫자가 여러 번 나올 수 있나요?▼
숫자 모드에서 "중복 허용" 옵션을 체크하면 같은 숫자가 여러 번 나올 수 있습니다. 체크하지 않으면 모든 숫자가 고유합니다.
추첨 기록은 어디에 저장되나요?▼
추첨 기록은 브라우저 메모리에만 저장됩니다. 페이지를 새로고침하면 기록이 삭제되며, 서버에 전송되지 않습니다.
경품 추첨에 사용해도 공정한가요?▼
난수 자체는 암호학적으로 안전한 방식이라 충분히 공정합니다. 다만 신뢰를 얻으려면 참가자 명단을 먼저 확정·공개하고, 추첨 과정을 화면 공유나 녹화로 남기는 것이 좋습니다.
참가자 명단이 서버로 전송되나요?▼
아니요. 입력한 목록과 추첨 결과 모두 브라우저 안에서만 처리되며 외부로 전송되지 않습니다. 실명이나 연락처가 포함된 명단도 안전하게 사용할 수 있습니다.
몇 명까지 넣을 수 있나요?▼
브라우저 메모리가 허용하는 범위에서 수천 명 단위까지 처리할 수 있습니다. 다만 목록이 아주 길면 붙여넣기 직후 잠깐 반응이 느려질 수 있습니다.