팀별 참여도에 따라 뽑힐 기회를 다르게 주고 싶은데, 정작 룰렛에는 확률 슬라이더 같은 것이 보이지 않아 막막했던 적이 있을 것입니다. 이 글은 후보마다 다른 확률을 주고 싶은 상황에서 어떤 방법이 실제로 가능하고, 어디까지가 이 도구의 한계인지 구체적인 숫자와 함께 설명합니다. 결론부터 말하면 확률을 조절하는 슬라이더는 없지만, 같은 항목을 여러 번 넣는 방식으로 정수비 가중치는 충분히 만들 수 있습니다.
이 룰렛이 확률을 다루는 기본 원리
온라인 룰렛은 후보 목록에 들어간 각 항목을 같은 확률로 하나 뽑습니다. 후보가 8개면 각 항목은 정확히 12.5%이고, 5개면 각 항목이 20%입니다. 이 계산은 직접 손으로 확인할 수 있는 값입니다. 내부적으로는 브라우저의 보안 난수를 쓰고 편향을 제거해, 특정 자리가 더 잘 나오는 일이 없도록 합니다. 지금 바로 시험해 보고 싶다면 온라인 룰렛 바로 쓰기 화면에서 후보를 몇 개 넣고 돌려 보면 감이 잡힙니다.
여기서 핵심은 확률의 단위가 '사람'이 아니라 '목록에 적힌 항목'이라는 점입니다. 같은 이름이 두 줄 들어가면 그 이름은 두 개의 항목으로 세어집니다. 이 성질이 바로 가중치를 만드는 열쇠가 됩니다. 이름 대신 숫자를 뽑고 싶다면 랜덤 숫자 추첨 도구를 쓰는 편이 더 깔끔합니다.
가중치를 주는 유일한 방법은 항목을 여러 번 넣기
이 도구에는 특정 후보의 확률만 따로 조절하는 별도 기능이 없습니다. 대신 같은 이름을 여러 번 넣으면 그 수만큼 뽑힐 가능성이 커집니다. 이것이 사실상 유일한 가중 방법입니다. 방식이 단순해 보여도, 참가자에게 규칙을 설명하기 쉽다는 큰 장점이 있습니다.
예를 들어 A, B, C 세 팀에 각각 참여도에 따라 3:2:1로 기회를 주고 싶다면 목록을 이렇게 구성합니다. A를 세 줄, B를 두 줄, C를 한 줄, 합쳐서 여섯 줄입니다. 그러면 A는 6분의 3, 즉 50%, B는 6분의 2로 약 33.3%, C는 6분의 1로 약 16.7%가 됩니다. 이 비율은 넣은 줄 수만 세면 누구나 검산할 수 있습니다. 확률이 문서 어딘가에 숨어 있는 것이 아니라 화면에 그대로 드러나므로, 결과를 두고 의심할 여지가 줄어듭니다.
구체적인 입력 예시로 따라 하기
사내 스터디에서 발표 참여가 많았던 순서대로 상품 추첨 기회를 주는 상황을 생각해 봅시다. 참여 3회인 사람은 세 줄, 2회는 두 줄, 1회는 한 줄을 적습니다. 개인정보를 줄이려면 실명 대신 1번, 2번 같은 번호나 닉네임을 씁니다. 목록을 다 넣은 뒤 한 번 돌리면 가중치가 반영된 결과가 하나 나옵니다. 점심 메뉴처럼 가벼운 주제라면 점심 메뉴 룰렛에서 같은 요령으로 자주 먹고 싶은 메뉴에 줄을 더 주면 됩니다.
- 총 줄 수를 먼저 세어 분모를 확인합니다.
- 각 후보가 차지한 줄 수가 분자입니다.
- 백분율은 분자를 분모로 나눈 값입니다.
이 방법의 분명한 한계
줄로 가중치를 표현하면 소수점 비율을 정밀하게 맞추기 어렵습니다. 예컨대 37% 대 63% 같은 값을 정확히 만들려면 100줄에 가깝게 넣어야 하는데, 후보는 최대 100개, 항목당 50자까지만 허용되므로 촘촘한 조정에는 맞지 않습니다. 비율이 단순한 정수비로 떨어질 때만 쓰기 좋습니다. 소수점 둘째 자리까지 맞춰야 하는 정밀 배분이라면 이 도구는 애초에 적합한 선택이 아닙니다.
또한 목록에 같은 이름이 여러 번 있으면 화면이 산만해지고, 몇 줄을 넣었는지 나중에 헷갈릴 수 있습니다. 그래서 돌리기 전에 줄 수를 종이나 메모에 함께 적어 두는 편이 안전합니다. 참가자가 여러 명이라면 목록을 캡처해 두면 나중에 비율을 다시 확인하기 좋습니다.
결과가 균등 분포에서 나온다는 의미
이산 균등 분포는 각 경우가 같은 확률을 갖는 가장 단순한 분포입니다. 룰렛이 항목 단위로 균등하게 뽑기 때문에, 줄 수를 늘리는 방식이 곧 확률을 늘리는 방식으로 정확히 연결됩니다. 다시 말해 가중치는 마법이 아니라 '같은 항목을 몇 번 넣었는가'라는 눈에 보이는 규칙으로 환원됩니다. 이 점을 참가자에게 미리 설명하면 결과를 두고 다툴 여지가 줄어듭니다. 자세한 배경은 Wikipedia: Discrete uniform distribution 문서에서 확인할 수 있고, 기초 확률 개념은 Khan Academy: Probability 자료가 도움이 됩니다.
흔한 실수와 확인 절차
가장 흔한 실수는 한 사람이 이미 뽑혔는데 목록에서 지우지 않고 다시 돌리는 것입니다. 이 도구는 당첨된 항목을 손대지 않고 그대로 두므로, 뽑힌 항목은 사람이 직접 지운 뒤 다시 돌려야 합니다. 두 번째 실수는 줄 수를 잘못 세어 의도한 비율과 다르게 넣는 것입니다. 세 번째는 후보를 바꾼 뒤에도 이전 결과가 남아 있다고 착각하는 것인데, 후보를 바꾸면 현재 결과는 지워지고 최근 기록만 남습니다.
- 목록을 넣고 총 줄 수와 각 후보 줄 수를 확인합니다.
- 한 번 돌려 결과를 확인합니다.
- 연속 추첨이면 나온 항목을 목록에서 직접 지웁니다.
- 필요하면 결과 텍스트를 복사해 기록으로 남깁니다.
난수의 품질이 궁금하다면 브라우저 보안 난수 API를 설명한 MDN: Crypto.getRandomValues() 문서를 참고할 수 있습니다.
어디에 쓰고 어디에 쓰지 말아야 하는가
줄 수 가중치는 팀 게임, 가벼운 사내 이벤트, 참여 보상처럼 비율이 단순하고 결과의 무게가 크지 않은 경우에 잘 맞습니다. 반대로 금전이 걸린 공식 추첨이나 채용처럼 정밀한 확률과 증빙이 필요한 자리에는 이 방식만으로 부족합니다. 그럴 때는 후보 확정 시각을 공지하고 화면을 녹화하며 결과 텍스트를 따로 보관하는 등 별도 절차를 함께 마련해야 합니다.
정리하면, 가중치 랜덤 선택은 '항목을 몇 번 넣느냐'로 확률을 조정하는 투명한 규칙입니다. 단순 정수비라면 지금 바로 목록을 구성해 돌려 볼 수 있고, 비율이 복잡하거나 결과가 중요하다면 다른 절차를 덧붙여야 한다는 점을 기억하면 됩니다.
비율별 목록 구성 표
자주 쓰는 비율을 미리 표로 정리해 두면 목록을 만들 때 계산 실수를 줄일 수 있습니다. 아래 표는 총 줄 수와 그때 나오는 확률을 함께 보여 줍니다. 값이 나누어떨어지지 않는 비율은 약간의 반올림이 생기므로, 참가자에게 소수점 이하를 어떻게 안내할지 미리 정해 두는 편이 좋습니다.
| 원하는 비율 | 넣는 줄 수 | 각 후보 확률 |
|---|---|---|
| 1:1 | 1, 1 (총 2줄) | 각 50% |
| 2:1 | 2, 1 (총 3줄) | 약 66.7% 대 33.3% |
| 3:2:1 | 3, 2, 1 (총 6줄) | 50% / 33.3% / 16.7% |
| 4:1 | 4, 1 (총 5줄) | 80% 대 20% |
표를 보면 알 수 있듯이, 원하는 확률이 분수로 깔끔하게 표현될 때 이 방식이 가장 잘 맞습니다. 반대로 표에 없는 애매한 비율을 억지로 맞추려고 수십 줄을 넣기 시작하면 관리가 어려워지므로, 그럴 때는 비율 자체를 단순화해 합의하는 편이 실무에서는 더 낫습니다.
자주 나오는 질문
가장 많이 받는 질문은 '한 번 돌려서 나온 결과를 다시 무를 수 있느냐'입니다. 결과는 새로 돌리거나 후보를 바꾸면 갱신되므로, 이미 공개한 결과를 없던 일로 하려면 재추첨 규칙을 사전에 정해 두어야 합니다. 규칙 없이 마음에 안 든다고 계속 다시 돌리면 가중치를 아무리 잘 짜도 공정성 시비가 생깁니다. 두 번째로 많은 질문은 '결과가 브라우저에 저장되느냐'인데, 최근 기록은 이 브라우저에만 최대 열 개까지 남고 서버로는 올라가지 않습니다. 기록의 저장 범위가 궁금하면 MDN: Window.localStorage 문서에서 브라우저 저장의 개념을 확인할 수 있습니다.