랜덤 뽑기
브라우저의 암호학적 난수(crypto)로 뽑아서 누가 해도 공정해요. 이벤트 경품 추첨, 발표 순서, 조 나누기에 쓰세요.
랜덤 뽑기, 섞고 나누는 방식 그대로
이럴 때 써요
블로그·인스타그램 이벤트 댓글 참여자 가운데 당첨자를 뽑을 때, 수업이나 연수에서 발표 순서와 모둠을 정할 때, 행사장에서 경품 번호를 추첨할 때 써요. 손으로 제비를 만들면 접은 모양이나 순서 때문에 말이 나올 수 있는데, 여기서는 명단 순서와 상관없이 모든 사람이 같은 확률을 갖도록 섞고, 추첨 시각까지 기록으로 남겨 줘요.
사용 방법

1단계방식 고르고 명단 넣기
- 1① 명단에서 뽑기, 번호 뽑기, 조 나누기 가운데 골라요.
- 2② 이름을 줄바꿈, 쉼표, 탭으로 나눠 넣어요. 엑셀 한 열이나 한 행을 그대로 복사해 와도 돼요.
- 3③ 뽑을 인원이 명단보다 많으면 명단 인원만큼만 뽑아요.

2단계뽑고 기록 남기기
- 4④ 두근두근 효과를 켜 두면 약 2초 동안 이름이 빠르게 바뀌다가 멈춰요. 효과는 보여 주기일 뿐 결과와는 관계없어요.
- 5⑤ 당첨자는 뽑힌 차례대로 번호가 붙어요. 아래 줄에 추첨 시각이 함께 적혀요.
- 6⑥ 결과와 시각을 ‘추첨결과_날짜.txt’ 파일로 내려받아요.
섞는 방식
세 방식 모두 ‘피셔-예이츠 섞기’를 써요. 명단 맨 끝 자리부터 앞으로 오면서, 그 자리와 아직 정해지지 않은 자리 가운데 하나를 무작위로 골라 맞바꿔요. 이렇게 하면 가능한 모든 순서가 똑같은 확률로 나와요. 명단 뽑기는 섞은 결과의 앞에서부터 인원수만큼, 번호 뽑기는 범위 안의 번호를 모두 섞은 뒤 앞에서부터 개수만큼 잘라요.
조 나누기는 섞은 명단을 1조, 2조, 3조, 다시 1조 순서로 카드 돌리듯 한 명씩 나눠 줘요. 그래서 조끼리 인원 차이는 많아야 한 명이고, 남는 사람은 앞 번호 조부터 들어가요.
| 방식 | 겹침 | 결과 순서 |
|---|---|---|
| 명단에서 뽑기 | 같은 이름은 옵션에 따라 하나로 | 뽑힌 차례 |
| 번호 뽑기 | 기본은 겹치지 않음, 옵션으로 허용 | 작은 순 정렬 또는 뽑힌 차례 |
| 조 나누기 | 같은 이름도 각각 한 명 | 조별 명단 |
난수는 어디서 오나요
자리를 고를 때 쓰는 수는 브라우저의 보안용 난수 기능에서 받아요. 0부터 약 43억 사이의 수를 받아 ‘남은 사람 수로 나눈 나머지’로 자리를 정하는데, 43억이 사람 수로 딱 나누어떨어지지 않으면 앞쪽 자리가 아주 조금 더 자주 나오게 돼요. 이 도구는 나누어떨어지지 않는 끝부분에 걸린 수를 버리고 새로 받아서 그 치우침을 없애요. 페이지를 열 때마다, 버튼을 누를 때마다 새 난수를 받기 때문에 같은 명단으로 다시 뽑아도 결과를 미리 알 수 없어요.
추첨 기록 파일
저장한 TXT 파일 첫 줄에는 ‘[당첨 3명 / 전체 10명]’처럼 조건과 추첨 시각이 들어가고, 그 아래에 1번부터 당첨자가 한 줄씩 적혀요. 번호 뽑기는 번호가 쉼표로, 조 나누기는 ‘1조: 이름, 이름’ 꼴로 조마다 한 줄씩 들어가요. 온라인 이벤트라면 이 파일과 화면 녹화를 함께 남겨 두면 결과를 설명하기 쉬워요.
주의할 점
- 중복 이름 옵션의 뜻 — 켜 두면 같은 이름은 한 번만 넣어 모두 같은 확률이 되고, 끄면 이름이 나온 횟수만큼 당첨 확률이 커져요. 댓글을 여러 번 단 사람에게 더 기회를 줄지 미리 정해 공지하세요.
- 조 나누기는 이름을 합치지 않아요 — 명단에 같은 이름이 두 번 있으면 두 사람으로 나눠 넣어요. 동명이인이라면 ‘김민준A’처럼 구분해 적어요.
- 번호 범위는 적당히 — 겹치지 않게 뽑을 때는 범위 안 번호를 모두 늘어놓고 섞기 때문에, 범위가 수백만을 넘으면 브라우저가 느려질 수 있어요. 겹침을 허용하면 한 번에 1만 개까지 뽑아요.
더 궁금한 점
시작 번호와 끝 번호를 거꾸로 넣으면요?
끝 번호가 더 작으면 두 값을 바꿔서 계산해요. 45~1을 넣어도 1~45에서 뽑아요.
조 개수는 몇 개까지 되나요?
2개 이상이면 돼요. 사람 수보다 조가 많으면 빈 조가 생기니, 조 개수는 명단 인원보다 적게 정하세요.
공정한 추첨, 이렇게 해요
명단을 붙여 넣고 뽑을 인원을 정한 뒤 ‘뽑기!’를 누르면 당첨자가 나와요. 추첨에는 브라우저가 제공하는 암호학적 난수(crypto.getRandomValues)를 쓰고, 한쪽으로 치우침이 생기지 않도록 거부 샘플링 방식으로 번호를 고른 뒤 피셔-예이츠 섞기로 순서를 정해요. 그래서 명단 순서와 상관없이 모든 사람이 같은 확률로 뽑혀요.
세 가지 방식
- 명단에서 뽑기 — 이벤트 당첨자, 발표 순서, 청소 당번. 같은 이름이 여러 번 있으면 ‘중복 이름 하나로’를 켜 두세요. 댓글 수만큼 확률을 주고 싶다면 끄면 돼요.
- 번호 뽑기 — 1~45 중 6개처럼 범위 안에서 겹치지 않는 번호를 뽑아요. 좌석 번호, 경품 번호 추첨에 써요.
- 조 나누기 — 명단을 무작위로 섞어 인원이 고르게 몇 개 조로 나눠요.
투명하게 진행하려면
온라인 이벤트라면 화면을 녹화하거나 공유하면서 뽑고, ‘추첨 기록 저장’으로 결과와 시각을 파일로 남겨 두세요. 명단은 서버로 전송되지 않고 이 브라우저에서만 처리돼요.
공정한 추첨을 위해
추첨은 브라우저의 암호학적 난수(crypto.getRandomValues)를 써서 특정 이름이 더 잘 뽑히지 않아요. 결과를 캡처해 두거나 모두가 보는 화면에서 진행하면 나중에 다툼이 없어요.
자주 묻는 질문
정말 무작위인가요?
네. 수학적으로 예측하기 어려운 브라우저의 보안용 난수를 쓰고, 나머지 연산 치우침도 없앴어요. 같은 명단으로 여러 번 뽑으면 매번 다른 결과가 나와요.
몇 명까지 넣을 수 있나요?
수천 명도 문제없어요. 엑셀의 이름 열을 복사해 붙여 넣으면 줄마다 한 명으로 인식해요.
다시 뽑으면 이전 당첨자가 제외되나요?
아니요. 누를 때마다 전체 명단에서 새로 뽑아요. 추가 추첨이 필요하면 당첨자를 명단에서 지운 뒤 다시 뽑으세요.