랜덤 추첨기는 후보 목록을 한 줄에 하나씩 입력하면, 그중에서 무작위로 한 명 또는 여러 명을 공정하게 뽑아 주는 도구입니다. 이벤트 경품 당첨자 선정, 발표 순서 정하기, 청소 당번·심부름 담당 정하기, 점심 메뉴 고르기처럼 '누군가 정해야 하지만 아무도 손해 보고 싶지 않은' 순간에 사람의 편견 없이 결과를 맡길 수 있습니다.
종이 제비뽑기나 손으로 번호를 부르는 방식은 준비가 번거롭고, 뽑는 사람이 결과에 개입할 여지가 있다는 의심을 받기 쉽습니다. 이 추첨기는 브라우저의 암호학적 난수 생성기(crypto.getRandomValues)로 목록을 통째로 섞은 뒤 앞에서부터 필요한 인원을 뽑기 때문에, 모든 후보가 정확히 같은 확률로 당첨되고 결과를 미리 조작할 수 없습니다.
아래에서는 추첨기를 실제로 활용하는 상황(경품 추첨·조 편성·순서 정하기), 무작위 추첨이 '공정하다'는 말의 의미와 원리, 그리고 같은 후보가 다시 뽑힐 수 있는지(중복·복원 여부)를 정리했습니다.
사용 방법
- 입력창에 후보를 한 줄에 하나씩 적습니다. 이름·번호·메뉴 등 무엇이든 됩니다. 빈 줄과 앞뒤 공백은 자동으로 무시되고, 인식된 후보 수가 '후보 N명'으로 표시됩니다.
- 뽑을 인원(뽑을 수)을 지정합니다. 1로 두면 한 명, 여러 명을 뽑고 싶으면 원하는 숫자를 넣습니다. 후보 수보다 큰 값을 넣으면 후보 전원이 뽑히는 순서대로 정렬됩니다.
- '추첨하기' 버튼을 누르면 목록이 무작위로 섞이고, 지정한 인원만큼 당첨자가 즉시 표시됩니다.
- 다시 버튼을 누를 때마다 매번 새로 섞으므로 결과가 달라집니다. 같은 조건으로 재추첨하거나, 후보를 수정한 뒤 다시 뽑을 수 있습니다.
랜덤 추첨기 활용법
무작위 추첨은 '선택의 책임'을 사람 대신 확률에 맡기는 도구입니다. 다음과 같은 상황에서 특히 유용합니다.
- 경품·당첨자 뽑기: 이벤트 응모자, 댓글 참여자, 사번 목록을 붙여 넣고 당첨 인원을 뽑을 수를 정해 한 번에 추첨합니다.
- 조 편성·팀 나누기: 전체 인원을 넣고 조장으로 뽑을 수를 정하거나, 여러 번 나눠 뽑아 팀을 구성합니다.
- 발표·순서 정하기: 뽑을 수를 후보 수와 같게 하면 전원이 무작위 순서로 정렬돼 발표 순번·게임 순서로 그대로 쓸 수 있습니다.
- 당번·역할 정하기: 청소 당번, 회의록 작성자, 심부름 담당처럼 아무도 자원하지 않는 역할을 공정하게 배정합니다.
- 메뉴·선택지 고르기: 점심 후보 식당, 볼 영화, 갈 여행지처럼 결정이 어려운 선택지를 넣고 하나를 뽑습니다.
순서 전체가 필요할 때
'뽑을 수'를 후보 인원과 똑같이 맞추면 한 명도 빠짐없이 무작위로 섞인 순서가 나옵니다. 발표 순서나 게임 진행 순번처럼 '누가 1등이 아니라, 전원의 순서'가 필요할 때 이 방법을 쓰면 됩니다.
공정한 무작위 추첨의 원리
'공정하다'는 말은 모든 후보가 정확히 같은 확률로 뽑히고, 누구도 결과를 미리 알거나 조작할 수 없다는 뜻입니다. 이 추첨기는 두 가지 장치로 공정성을 보장합니다.
첫째, 목록을 섞을 때 피셔-예이츠(Fisher–Yates) 셔플 알고리즘을 씁니다. 이 방식은 가능한 모든 배열 순서가 똑같은 확률로 나오도록 수학적으로 보장돼, 특정 위치의 후보가 유리해지는 편향이 없습니다. 둘째, 섞는 데 필요한 난수를 브라우저의 암호학적 난수 생성기(crypto.getRandomValues)에서 가져옵니다. 게임 등에 흔히 쓰는 일반 난수와 달리 다음 값을 예측하기 어렵게 설계돼 있습니다.
| 후보 수 | 각자 당첨 확률 | 설명 |
|---|---|---|
| 2명 | 50% | 동전 던지기와 같음 |
| 4명 | 25% | 네 명이 모두 동일 |
| 10명 | 10% | 열 명 중 한 명 |
| 50명 | 2% | 대규모 응모 추첨 |
| 100명 | 1% | 이벤트 경품 추첨 |
결과는 저장되지 않습니다
추첨은 여러분의 브라우저 안에서만 이뤄지며, 입력한 후보 명단이나 당첨 결과는 서버로 전송되거나 저장되지 않습니다. 개인정보가 담긴 명단도 안심하고 붙여 넣을 수 있고, 페이지를 새로고침하면 입력 내용은 사라집니다.
중복 당첨과 후보 중복 처리
여러 명을 뽑을 때 헷갈리기 쉬운 두 가지 '중복' 개념을 구분해 정리했습니다.
이 추첨기는 한 번의 추첨에서 같은 후보를 두 번 뽑지 않는 '비복원(중복 없는) 추첨' 방식입니다. 목록 전체를 섞은 뒤 앞에서부터 필요한 인원을 잘라 오기 때문에, 3명을 뽑으면 서로 다른 3명이 나옵니다. 반면 매번 뽑을 때마다 후보를 다시 넣는 '복원 추첨'은 이 도구가 하지 않습니다.
- 당첨자 중복 없음: 한 번 '추첨하기'로 여러 명을 뽑을 때, 이미 뽑힌 사람이 같은 회차에 또 뽑히지 않습니다. 서로 다른 당첨자가 나옵니다.
- 후보 목록의 중복: 같은 이름을 두 줄에 적으면 서로 다른 두 후보로 취급됩니다. 예를 들어 응모권을 많이 낸 사람에게 더 높은 당첨 확률을 주고 싶다면, 그 사람 이름을 여러 줄 적으면 됩니다.
- 재추첨 시: 버튼을 다시 누르면 이전 당첨자를 포함한 전체 후보에서 새로 추첨합니다. 이전 당첨자를 빼고 뽑으려면 명단에서 지운 뒤 다시 누르세요.
가중 추첨을 만드는 법
특정 후보의 당첨 확률을 높이고 싶다면 그 후보의 이름을 여러 줄 반복해서 입력하세요. 예를 들어 'A'를 3줄, 'B'를 1줄 넣으면 A가 B보다 3배 높은 확률로 뽑힙니다. 이렇게 응모 횟수에 비례한 가중 추첨을 손쉽게 만들 수 있습니다.
자주 묻는 질문
- 정말 무작위인가요? 조작 가능성은 없나요?
- 브라우저에 내장된 암호학적 난수 생성기(crypto.getRandomValues)로 목록을 섞기 때문에 결과를 미리 알거나 특정 사람에게 유리하게 조작할 수 없습니다. 섞는 방식도 모든 순서가 동일한 확률로 나오도록 보장된 피셔-예이츠 알고리즘을 사용해, 어떤 후보도 위치 때문에 유리하거나 불리하지 않습니다.
- 같은 사람이 여러 번 당첨될 수 있나요?
- 한 번의 추첨에서 여러 명을 뽑을 때는 같은 사람이 중복으로 뽑히지 않습니다(비복원 추첨). 다만 추첨 버튼을 다시 누르면 전체 후보에서 새로 뽑으므로, 지난 회차 당첨자가 또 뽑힐 수 있습니다. 연속 회차에서 중복을 막으려면 이전 당첨자를 명단에서 지운 뒤 다시 추첨하세요.
- 특정 사람의 당첨 확률을 높일 수 있나요?
- 네. 같은 이름을 여러 줄 입력하면 각 줄이 별도 후보로 처리되어, 그만큼 당첨 확률이 높아집니다. 응모 횟수나 기여도에 비례한 가중 추첨을 만들 때 이 방식을 활용하면 됩니다.
- 후보는 몇 명까지 넣을 수 있나요?
- 정해진 상한은 없습니다. 수백 명 규모의 명단도 붙여 넣어 추첨할 수 있습니다. 엑셀이나 메모장의 이름 목록을 그대로 복사해 붙여 넣으면 한 줄에 한 명씩 자동으로 인식됩니다. 빈 줄과 앞뒤 공백은 무시됩니다.
- 뽑을 인원을 후보 수보다 크게 하면 어떻게 되나요?
- 후보 전원이 무작위 순서로 정렬되어 표시됩니다. 즉 뽑을 수를 후보 인원과 같거나 크게 두면 '전체 순서 섞기'로 동작하므로, 발표 순서나 게임 진행 순번을 정할 때 유용합니다.
- 입력한 명단이 외부로 전송되나요?
- 아니요. 모든 추첨은 여러분의 브라우저 안에서만 처리되며, 후보 명단과 당첨 결과는 서버로 전송되거나 저장되지 않습니다. 개인정보가 포함된 명단도 안전하게 사용할 수 있고, 페이지를 새로고침하면 입력 내용은 남지 않습니다.