fixmint
KO

경품 추첨 당첨자를 공정하게 뽑고 과정을 공개하는 방법

지은이: · · 2026년 11월 8일 업데이트 · 4분 읽기

당첨자를 공정하게 뽑으려면 보안용으로 만들어진 생성기를 쓰고, 모든 응모 항목에 같은 확률을 주고, 결과를 나중에 누구나 확인할 수 있게 해야 해요. 단순한 추첨 도구가 불공정해지는 원인은 대개 두 가지예요. 무작위성의 출처가 약하거나, 모듈로 편향이라는 작은 산술 실수가 있는 경우죠. 둘 다 고칠 수 있어요. 참가자 목록과 추첨 기록을 공개하는 것이 누군가 당첨자를 고르지 않았다는 가장 확실한 증거예요.

랜덤 추첨기공정하게 당첨자 뽑기무료로 사용하기

진짜 난수와 의사 난수

진짜 난수 소스는 전자 잡음 같은 물리 현상에서 예측 불가능성을 얻어요. 의사 난수 생성기는 수식이에요. 시드(seed)라는 초깃값에서 시작해 정해진 연산을 거쳐, 무작위처럼 보이는 수열을 만들어요. 수열은 시드에 의해 완전히 결정되므로, 시드와 수식을 아는 사람은 모든 숫자를 예측할 수 있어요.

대부분의 소프트웨어는 의사 난수 생성기를 써요. 플레이리스트를 섞거나 게임 레벨을 무작위로 정하는 데는 그걸로 충분해요. 하지만 당첨 상품이 걸린 추첨에서는 누군가 결과를 예측하거나 영향을 줄 수 있는지가 문제예요. 빠르지만 예측 가능한 생성기는 이런 경우에 맞지 않아요.

브라우저의 암호학적 생성기 사용하기

JavaScript의 Math.random()은 빠른 의사 난수 생성기예요. 공식 문서에도 암호학적 용도에는 적합하지 않다고 적혀 있어요. 경품 추첨은 보안이 중요한 선택이므로, 이 함수는 쓰지 않는 게 좋아요. Web Crypto 함수인 crypto.getRandomValues()는 배열을 운영체제의 암호학적 난수 소스에서 얻은 값으로 채워요. 이 함수를 쓰면 돼요. 랜덤 뽑기는 동전 던지기와 주사위를 포함해 모든 뽑기에 이 방식을 써요. 어떤 방식을 쓰는지 밝히지 않는 도구는 신뢰하기 어려우니, 쓰기 전에 꼭 확인해 보세요.

모듈로 편향, 예시로 이해하기

무작위 바이트 하나를 받는다고 해요. 바이트는 0부터 255까지의 정수예요. 이 중에서 3개 항목 가운데 하나를 고르고 싶다면, 3으로 나눈 나머지를 쓰는 방법이 가장 간단해 보여요. 공정해 보이지만 256은 3으로 똑같이 나뉘지 않아요.

  • 0, 3, 6 등 255까지 나머지가 0인 값은 86개예요.
  • 나머지가 1인 값은 85개, 나머지가 2인 값도 85개예요.

그러면 항목 0은 256번 중 86번, 약 33.6%의 확률로 나와요. 반면 항목 1과 2는 각각 85번, 약 33.2%예요. 차이는 작지만 실제로 존재하고, 항목 수가 난수 범위에 비해 커질수록 커져요.

해결책은 거부 샘플링(rejection sampling)이에요. 값을 하나 뽑았을 때 나눠떨어지지 않는 남은 부분에 들어가면 다시 뽑는 방식이에요. 앞의 바이트 예시에서는 255를 버리고 0부터 254까지만 받아들이면 3으로 똑같이 나뉘어요. 32비트 난수를 쓰면 남는 값은 약 43억 분의 1이라서, 경품 추첨에서는 편향이 무시할 만큼 작아요. 그래도 범위가 좁아지면 같은 실수가 더 커지므로, 꼼꼼한 뽑기 도구라면 이 부분을 제대로 처리해요.

중복 없이 뽑기

당첨자를 여러 명 뽑을 때 무작위 인덱스를 세 번 뽑으면 같은 항목이 두 번 나올 수 있어요. 다음 두 가지 방법을 쓰면 이런 일을 막을 수 있어요.

  1. 당첨된 항목을 목록에서 빼고, 남은 항목에서 다시 뽑아요.
  2. 전체 목록을 피셔-예이츠(Fisher–Yates) 방식으로 한 번 섞은 뒤, 위에서부터 당첨자를 가져와요.

피셔-예이츠 방식은 목록의 끝에서부터 차례로, 각 위치를 그 위치 이하의 임의의 위치와 바꿔요. 무작위 선택이 공정하다면 모든 순서가 같은 확률로 나와요. 짧고 원리가 잘 알려져 있어서, 참가자에게 설명하기도 쉬워요. 도구의 당첨자 제외 옵션과 중복 없음 옵션이 이 두 방법을 각각 처리해 줘요.

누구나 확인할 수 있게 만들기

공정한 추첨은 누구나 검증할 수 있어야 해요. 추첨 전에는 다음을 해 두세요.

  • 참가자 목록을 번호를 붙여서 공개하고, 참가 자격 규칙도 함께 밝혀요.
  • 그 목록의 SHA-256 지문을 공개해요. SHA-256 도구라면 어디서든 만들 수 있어요. 해시 생성기를 써도 돼요. 지문은 항목이 한 글자만 바뀌어도 완전히 달라지므로, 목록을 몰래 고칠 수 없게 해 줘요. 같은 방식으로 다운로드 파일도 검증할 수 있어요. 단계는 다운로드 파일의 SHA-256 체크섬을 확인하는 방법에서 볼 수 있어요.

추첨 중과 후에는 다음을 해 주세요.

  • 뽑기 도구를 시작하는 순간부터 결과가 표시될 때까지 화면을 녹화해요.
  • 당첨 번호가 표시된 최종 목록을 공개해서, 누구나 지문을 다시 계산하고 목록이 바뀌지 않았는지 확인할 수 있게 해요.
  • 당첨자를 어떻게 골랐는지 밝혀요. 예를 들면 "운영체제의 암호학적 난수 소스를 쓰는 브라우저 기반 뽑기 도구로 선정함"처럼 적을 수 있어요.

경품 행사 규칙은 플랫폼마다 다르고, 거주 지역에 따라 법적 요건이 붙을 수도 있어요. 진행하기 전에 플랫폼의 프로모션 규정과 해당 지역의 법을 꼭 확인하세요. 이 글은 일반적인 안내이며 법률 자문이 아니에요. 준비가 되었다면 랜덤 뽑기로 당첨자를 뽑아 보세요.

fixmint에서 뽑는 방법

  1. 이름을 선택한 다음, 이름, 한 줄에 하나씩에 참가자를 붙여 넣어요.
  2. 당첨자 수를 상품 개수에 맞게 설정해요. 한 사람이 두 번 당첨되지 않도록 목록에서 당첨자 제외를 체크하세요.
  3. 번호로 추첨하려면 숫자를 선택하고 최솟값과 최댓값을 입력해요. 각 번호가 한 번만 당첨될 수 있다면 중복 없음을 체크하세요.
  4. 화면 녹화를 처음부터 켜 둔 상태에서 당첨자 뽑기를 눌러요.
  5. 번호가 매겨진 참가 목록, SHA-256 지문, 당첨 항목, 뽑기 도구를 사용한 방법을 함께 공개해요.

자주 묻는 질문

경품 추첨에 Math.random()을 써도 괜찮나요?

게임이나 섞기에는 괜찮아요. 하지만 사람들이 검증할 추첨에는 적합하지 않아요. 결과를 예측할 수 있기 때문이에요. 암호학적 난수 소스를 쓰세요.

무작위 수를 항목 수로 나눈 나머지를 쓰면 안 되나요?

범위가 똑같이 나뉘지 않으면 나머지가 고르지 않게 되어, 일부 항목이 조금 더 잘 뽑혀요. 거부 샘플링을 쓰면 이 편향을 없앨 수 있어요.

한 번의 추첨으로 당첨자를 여러 명 뽑을 수 있나요?

네, 할 수 있어요. 다음 당첨자를 뽑기 전에 당첨된 항목을 빼거나, 한 번 섞은 뒤 위에서부터 가져오면 돼요. 어느 쪽이든 같은 항목이 두 번 당첨되지 않아요.

AI 도움을 받아 영어 원문에서 번역했어요.

댓글

    아직 댓글이 없어요. 첫 댓글을 남겨 보세요.

    별점 (선택)

    이메일은 공개되거나 보관되지 않아요.

    The Paperoom Game Night Kit 표지The Paperoom Game Night Kit

    인쇄해서 바로 쓸 수 있는 52쪽 게임 나이트 자료예요. 파티 빙고, 퍼즐, 보드게임, 종이와 연필로 하는 전투 게임에 플래너와 점수판까지 담겼어요.

    $7.00Gumroad에서 받기영어로 보기