랜덤 추첨기
공정한 이름/숫자 랜덤 추첨, 순서 섞기를 무료로 제공합니다.
같은 항목이 여러 번 당첨될 수 있습니다
참가자 이름을 입력하고 추첨하기 버튼을 누르세요
이름/항목 추첨 안내
- 쉼표 또는 줄바꿈으로 참가자를 구분하여 입력
- 당첨자 수와 중복 허용 여부 설정 가능
- 최대 200명 참가, 최대 100명 당첨
- 암호학적 난수로 공정한 추첨 보장
암호학적 난수(crypto.getRandomValues)를 사용하여 공정한 추첨을 보장합니다. 모든 항목은 동일한 확률로 선택됩니다.
랜덤 추첨기란?
랜덤 추첨기는 이름, 숫자 등을 무작위로 공정하게 선택해주는 도구입니다. 회사 당번 선정, 경품 추첨, 발표 순서 정하기, 팀 나누기 등 다양한 상황에서 활용할 수 있습니다. 암호학적 난수 생성 방식을 사용하여 모든 참가자에게 동일한 확률을 보장합니다.
주요 기능
이름/항목 추첨
참가자 이름이나 항목을 입력하고 원하는 수만큼 당첨자를 뽑을 수 있습니다. 중복 당첨 허용 여부를 설정할 수 있어 경품 추첨 시 한 사람이 여러 번 당첨될 수 있도록 하거나, 당번 선정 시 중복 없이 뽑을 수 있습니다. 최대 200명의 참가자를 등록하고 최대 100명까지 당첨자를 설정할 수 있습니다.
숫자 범위 추첨
지정한 범위(예: 1~100) 내에서 원하는 개수의 숫자를 무작위로 추출합니다. 번호 뽑기, 좌석 번호 배정, 랜덤 숫자 생성 등에 활용할 수 있습니다. 중복 불허 모드에서는 결과가 오름차순으로 자동 정렬됩니다.
순서 섞기
입력한 항목들의 순서를 완전히 무작위로 섞어줍니다. 발표 순서 정하기, 좌석 배치, 팀 대결 순서 결정 등 공정한 순서 배정이 필요할 때 유용합니다.
상황별 추천 모드 가이드
어떤 모드를 사용해야 할지 고민된다면 아래 표를 참고하세요.
| 상황 | 추천 모드 | 설정 |
|---|---|---|
| 회식 술래/당번 정하기 | 이름/항목 추첨 | 1명, 중복 불허 |
| 경품 추첨 (복수 당첨) | 이름/항목 추첨 | N명, 중복 불허 |
| 로또 번호 생성 | 숫자 범위 추첨 | 1~45, 6개, 중복 불허 |
| 좌석 번호 배정 | 숫자 범위 추첨 | 1~인원수, 중복 불허 |
| 발표 순서 정하기 | 순서 섞기 | - |
| 팀 나누기 | 순서 섞기 | 결과를 짝수로 분할 |
| 게임 벌칙 당첨자 | 이름/항목 추첨 | 1명, 중복 불허 |
공정성 보장 원리
이 추첨기는 브라우저의 crypto.getRandomValues() API를 사용합니다. 일반적인 Math.random()과 달리 운영체제의 엔트로피 소스에서 난수를 생성하므로 결과를 예측할 수 없습니다.
| 항목 | Math.random() | crypto.getRandomValues() |
|---|---|---|
| 난수 생성 원리 | 의사난수 생성기(PRNG) | 운영체제 엔트로피 소스 |
| 예측 가능성 | 시드를 알면 예측 가능 | 예측 불가능 |
| 보안 등급 | 비암호학적 | 암호학적 안전(CSPRNG) |
| 편향성 | 미세한 편향 존재 가능 | 균등 분포 보장 |
| 적합한 용도 | 게임, 시뮬레이션 | 추첨, 보안 토큰, 암호키 |
순서 섞기에는 Fisher-Yates 셔플 알고리즘을 적용합니다. 이 알고리즘은 모든 순열이 동일한 확률로 나오는 것이 수학적으로 증명된 방식입니다.
Fisher-Yates 셔플 알고리즘
Fisher-Yates(Knuth) 셔플은 배열의 마지막 요소부터 시작하여 무작위로 선택한 앞쪽 요소와 교환하는 방식입니다.
- 배열의 마지막 요소(n번째)에서 시작
- 1~n 사이의 무작위 위치를 선택
- 현재 요소와 선택된 위치의 요소를 교환
- n-1번째 요소로 이동하여 반복
- 첫 번째 요소에 도달하면 완료
흔히 사용되는 array.sort(() => 0.5 - Math.random()) 방식은 비교 함수의 일관성이 보장되지 않아 특정 순서가 더 자주 나오는 편향이 발생합니다. Fisher-Yates 셔플은 이러한 편향 없이 n! 가지 모든 순열이 정확히 동일한 확률(1/n!)로 나옵니다.
활용 사례
- 회사/모임: 당번 선정, 회식 장소 정하기, 발표 순서 결정, 팀 배정
- 학교: 조 편성, 좌석 배치, 발표자 선정, 역할 분담
- 경품 행사: 참가자 중 당첨자 추첨, 경품 등급별 배분
- 게임/놀이: 순서 정하기, 팀 나누기, 벌칙 당첨자 선정, 진실 혹은 거짓 순서
참고사항
- 모든 추첨 처리는 브라우저에서 이루어지며 입력 데이터가 서버로 전송되지 않습니다. 참가자 이름 등 개인정보가 외부에 노출될 걱정 없이 안전하게 사용할 수 있습니다.
- 최대 참가자 수는 200명, 당첨자 수는 최대 100명입니다. 중복 당첨을 허용하면 참가자 수보다 많은 당첨자를 뽑는 것도 가능합니다.
- 추첨 결과는 페이지를 새로고침하면 사라지므로, 결과를 보존하려면 화면 캡처 또는 공유 기능을 활용하세요.