SpinFlow 블로그 · 2026-05-06

중복 당첨 방지 룰: 뽑고 지우고 기록하기

한 사람이 여러 번 뽑히는 것을 막는 실행 순서를 정리합니다. 룰렛은 자동 제외가 없으므로 뽑은 항목을 직접 지우고 기록으로 남기는 방법을 사은품 여러 회 추첨 예시로 설명합니다.

글 요약

한 사람이 여러 번 뽑히는 것을 막는 실행 순서를 정리합니다. 룰렛은 자동 제외가 없으므로 뽑은 항목을 직접 지우고 기록으로 남기는 방법을 사은품 여러 회 추첨 예시로 설명합니다. 본문은 브라우저에서 전체 내용과 함께 표시됩니다.

사은품을 여러 차례 나눠 줄 때 같은 사람이 두 번, 세 번 뽑히면 나머지 참가자는 금세 불만을 품습니다. 이 글은 온라인 룰렛으로 여러 번 추첨하면서 이미 당첨된 사람을 다시 뽑지 않게 만드는 실제 실행 순서를 다룹니다. 핵심은 도구가 대신 해 주지 않는 부분을 운영자가 손으로 채우는 것입니다. 몇 명을 대상으로 몇 번 뽑는지, 어느 시점에 무엇을 누르는지까지 구체적으로 살펴봅니다.

왜 같은 사람이 다시 뽑히는가

룰렛은 한 번 돌릴 때마다 현재 후보 목록 전체를 대상으로 뽑습니다. 방금 당첨된 이름이 목록에 그대로 남아 있으면 다음 회차에서도 똑같은 확률로 다시 선택될 수 있습니다. 이 도구에는 당첨자를 자동으로 빼 주는 장치가 없습니다. 그래서 두 번째 추첨을 시작하기 전에 첫 당첨자를 목록에서 직접 제거하는 절차가 반드시 필요합니다. 이 한 단계를 빠뜨리는 것이 중복 당첨의 가장 흔한 원인입니다.

난수 자체는 편향이 없습니다. 브라우저의 Crypto.getRandomValues()는 보안 수준의 난수를 만들고, 이 도구는 그 값에 편향 제거를 더해 각 항목이 같은 확률을 갖게 합니다. 반면 일반적인 Math.random()은 보안 용도로 설계된 함수가 아니라는 점도 참고할 만합니다. 결국 문제는 난수의 품질이 아니라 목록을 어떻게 관리하느냐에 있습니다.

비복원 추첨이라는 개념

당첨자를 다시 뽑지 않는 방식을 통계에서는 비복원 표본이라고 부릅니다. 단순 무작위 표본 문서는 한 번 뽑은 대상을 다시 넣지 않는 추출을 설명합니다. 사은품 추첨에서 같은 사람을 배제하려면 매 회차마다 목록을 줄여 나가는 이 방식을 손으로 구현하면 됩니다. 개념은 어렵지 않지만, 도구가 자동으로 해 주지 않으므로 순서를 몸에 익혀 두는 것이 중요합니다.

예를 들어 후보가 20명이고 경품이 3개라면, 첫 회차는 20명 중 한 명을 뽑아 각자 5퍼센트입니다. 그 사람을 지우면 19명이 남고, 두 번째 회차는 각자 약 5.26퍼센트가 됩니다. 세 번째는 18명 중 한 명이라 약 5.56퍼센트입니다. 남은 사람의 뽑힐 가능성이 조금씩 올라가는 것이 정상이며, 이는 조작이 아니라 비복원 추첨의 당연한 성질입니다. 참가자에게 이 점을 미리 설명하면 오해가 줄어듭니다.

실행 순서 여덟 단계

  1. 참가자 명단을 확정하고 한 줄에 한 명씩 입력합니다. 실명 대신 응모 번호나 닉네임을 권합니다.
  2. 추첨 전에 후보 수를 소리 내어 확인합니다. 예를 들어 스무 명이 맞는지 봅니다.
  3. 룰렛을 한 번 돌려 첫 당첨자를 확인합니다.
  4. 결과 텍스트 복사로 결과와 후보 요약을 따로 보관합니다.
  5. 당첨된 이름을 목록에서 지웁니다. 이때 후보가 바뀌므로 현재 결과 표시는 초기화됩니다.
  6. 줄어든 목록으로 다음 회차를 돌립니다.
  7. 경품 수만큼 세 번째부터 여섯 번째 단계를 반복합니다.
  8. 모든 회차가 끝나면 보관한 결과 텍스트를 모아 발표문에 붙입니다.

이 순서를 지키면 사람 손으로도 충분히 중복 없는 추첨을 진행할 수 있습니다. 특히 다섯 번째 단계인 목록에서 지우기가 빠지지 않도록 매 회차 습관처럼 확인합니다.

번호 추첨이나 팀 배정으로 나눌 때

당첨자에게 순번을 부여하고 싶다면 랜덤 숫자 추첨 도구로 번호를 뽑아 이름과 짝지을 수 있습니다. 또 여러 명을 조로 나눠야 하는 상황이라면 팀 나누기 도구가 이름을 균등하게 섞어 순서대로 배분합니다. 한 명씩 뽑는 룰렛과 달리 팀 나누기는 전체를 한 번에 나누므로, 중복 걱정 없이 모든 사람을 배치할 때 편리합니다. 목적에 맞는 도구를 고르는 것도 중복 관리의 일부입니다.

기록을 남기는 방법과 한계

이 도구는 최근 기록을 최대 10개까지 이 브라우저에만 저장합니다. 저장 위치는 Window.localStorage이며, 같은 기기와 브라우저에서만 보이고 캐시를 지우면 사라집니다. 서버에 남는 기록이나 감사 로그, 표 파일 저장 기능은 제공하지 않습니다. 그래서 여러 회차 결과를 안전하게 남기려면 매 회차 결과 텍스트를 복사해 별도 문서에 붙여 두는 편이 확실합니다.

결과 텍스트에는 당첨 항목과 후보 요약이 함께 담깁니다. 반면 후보 링크 복사는 후보 목록만 담고 결과는 담지 않으므로, 링크만 공유하면 누가 뽑혔는지는 상대에게 보이지 않습니다. 두 기능의 차이를 알아 두면 무엇을 공유할지 헷갈리지 않습니다. 또한 이 링크는 암호화되지 않으므로 민감한 정보를 넣지 않도록 합니다.

흔한 실수 세 가지

첫째, 당첨자를 지우지 않고 다음 회차를 돌리는 실수입니다. 이러면 같은 사람이 또 뽑힐 수 있습니다. 둘째, 이름이 미묘하게 다른 중복입니다. 앞뒤에 공백이 붙거나 한 글자만 달라도 서로 다른 항목으로 세어 확률이 왜곡됩니다. 셋째, 재추첨 규칙을 미리 알리지 않는 것입니다. 당첨자가 응답하지 않을 때 어떻게 할지 정하지 않으면 나중에 논쟁이 됩니다.

가중 추첨이 필요할 때의 주의

참여도가 높은 사람에게 더 많은 기회를 주고 싶다면 그 이름을 목록에 여러 번 넣는 방법뿐입니다. 이름을 세 번 넣으면 그만큼 뽑힐 가능성이 커집니다. 다만 이 방식은 비복원 추첨과 충돌합니다. 한 번 뽑힌 사람을 배제하려면 그 사람의 중복 항목을 모두 지워야 하고, 하나라도 남기면 그 항목 때문에 또 뽑힐 수 있습니다. 중복 방지와 가중을 함께 원하면 규칙을 미리 문서로 정해 두는 편이 안전합니다.

회차 사이에 후보를 바꾸면 생기는 일

후보 목록을 조금이라도 수정하면 현재 화면에 떠 있는 결과와 하이라이트는 지워집니다. 최근 기록은 그대로 남지만, 방금 뽑힌 결과를 아직 복사하지 않았다면 목록을 고치는 순간 사라질 수 있습니다. 그래서 여덟 단계에서 결과 텍스트 복사를 당첨자 삭제보다 먼저 두었습니다. 순서를 바꾸면 기록이 누락되기 쉽습니다. 여러 사람이 지켜보는 자리에서는 복사한 결과를 화면에 함께 띄워 두면 다음 회차로 넘어가도 앞선 결과를 확인할 수 있습니다.

움직임 줄이기 설정을 켜 두면 회전 애니메이션이 짧아집니다. 여러 회차를 빠르게 돌려야 할 때 대기 시간을 줄이는 데 도움이 되며, 결과의 공정성에는 영향을 주지 않습니다. 진행 속도와 시각 효과는 취향에 맞게 조절하면 됩니다.

규모별로 방식 정하기

참가자가 열 명 안팎이고 경품이 하나라면 한 번 돌리고 끝나므로 삭제 절차가 필요 없습니다. 반대로 서른 명이 넘고 경품이 여러 개라면 회차마다 삭제와 기록을 반복해야 하므로, 시작 전에 담당자 한 명이 목록 관리를, 다른 한 명이 결과 복사를 맡는 식으로 역할을 나누면 실수가 줄어듭니다. 인원이 많을수록 한 사람이 모든 조작을 하려다 순서를 놓치기 쉽기 때문입니다. 진행표에 회차 번호와 당첨 항목을 미리 칸으로 만들어 두고 뽑을 때마다 채우면 나중에 발표문으로 정리하기도 수월합니다.

공식 이벤트라면 추가로 할 일

경품이나 금전이 걸린 공식 추첨에서는 이 도구의 화면만으로 완전한 증빙이 되지 않습니다. 후보를 확정한 시각을 공지하고, 추첨 장면을 화면 녹화하고, 매 회차 결과 텍스트를 보관하고, 재추첨 기준을 사전에 알리는 절차를 함께 갖추면 신뢰가 올라갑니다. 도구는 공정한 추첨을 돕지만, 절차의 투명성은 운영자가 만드는 것입니다. 작은 이벤트라도 이 습관을 들여 두면 규모가 커졌을 때 그대로 확장할 수 있습니다. 결국 중복 당첨 방지는 특별한 기능이 아니라 매 회차 같은 순서를 성실히 반복하는 운영 습관에서 나옵니다.

관련 도구와 참고 자료