무작위 벌칙 추첨 알고리즘 수식과 회전 룰렛 감속 가이드

무작위 벌칙 및 미션 추첨기

참가자 목록과 벌칙을 입력하고 회전판을 돌려 공정하고 유쾌한 무작위 벌칙 당첨자를 추첨해 보세요.

동아리 워크숍, 회사 MT 엠티 레크리에이션, 친구들과의 파티 게임에서 긴장감과 유쾌한 웃음을 자아내는 최고의 분위기 메이커 도구가 바로 **무작위 벌칙 및 미션 추첨기(Random Penalty & Mission Selector)**입니다.

참가자 이름 목록과 다양한 벌칙/미션 항목을 등록한 뒤, 회전 룰렛 돌림판이나 슬롯머신 인터랙션을 통해 참가자와 벌칙을 1:1 매칭 추첨하는 구조입니다. 공정한 난수(PRNG) 생성과 추첨된 참가자/벌칙 중복 당첨 방지(Non-replacement Sampling) 알고리즘이 결합되어 있습니다. 본 글에서는 무작위 매칭 확률 수식과 룰렛 돌림판 모션 렌더링법을 해설합니다.


1. 비복원 무작위 매칭 확률 수식 공식

N명의 참가자 P와 M개의 벌칙 항목 F에서 k번째 당첨자를 비복원 추첨(Without Replacement)으로 뽑는 순열 확률 수식은 다음과 같습니다:

[ P(P_i, F_j) = \frac{1}{N - k + 1} \times \frac{1}{M - k + 1} ]

공정 추첨 알고리즘의 핵심 3대 원칙:

  1. 균등 분포 난수 생성: Math.random() 또는 Crypto.getRandomValues()를 사용하여 모든 참가자 및 벌칙 항목이 동일한 당첨 확률을 갖도록 보장합니다.
  2. 중복 추첨 방지 (Array Splice): 당첨된 참가자와 벌칙은 배열에서 제외(splice)하여 이미 벌칙을 받은 사람이 재당첨되는 불상사를 차단합니다.
  3. 돌림판 회전 각도 수식 ($ heta$): 룰렛 섹터 수 K에 대해 당첨 항목 i의 회전 각도는 theta = 360 * R + (i * (360 / K)) + offset 수식으로 계산하여 긴장감 넘치는 감속 감속 회전(ease-out-cubic)을 부여합니다.

2. 무작위 벌칙 추첨 및 룰렛 돌림판 자바스크립트 소스

다음은 참가자와 벌칙을 1:1로 매칭하여 추첨하는 자바스크립트 소스 코드입니다:

function drawRandomPenalty(players, penalties) {
  if (players.length === 0 || penalties.length === 0) {
    return null;
  }

  // 1. 무작위 인덱스 추출
  const playerIdx = Math.floor(Math.random() * players.length);
  const penaltyIdx = Math.floor(Math.random() * penalties.length);

  // 2. 당첨 항목 추출 및 배열에서 제거 (비복원 추첨)
  const selectedPlayer = players.splice(playerIdx, 1)[0];
  const selectedPenalty = penalties.splice(penaltyIdx, 1)[0];

  return {
    player: selectedPlayer,
    penalty: selectedPenalty,
    remainingPlayers: players.length
  };
}

[!NOTE] 매번 사다리나 제비뽑기 종이를 손으로 접어서 준비할 필요 없이, 무작위 벌칙 및 미션 추첨기 도구를 활용하면 참가자 명단과 벌칙 목록을 입력하고 회전판을 돌려 공정하고 신나는 무작위 벌칙 매칭 결과를 즉시 확인하고 공유할 수 있습니다.

무작위 벌칙 및 미션 추첨기

참가자 목록과 벌칙을 입력하고 회전판을 돌려 공정하고 유쾌한 무작위 벌칙 당첨자를 추첨해 보세요.


3. 레크리에이션 게임 인터페이스 설계 지침

  1. CSS ease-out 감속 스핀 효과: 돌림판이 회전할 때 초기에는 아주 빠르게 돌다가 3초에 걸쳐 부드럽게 멈추도록 transition: transform 3.5s cubic-bezier(0.15, 0.9, 0.3, 1) 속성을 부여하면 극적인 긴장감을 연출할 수 있습니다.
  2. 당첨 효과음(Sound Effect) 및 축하 불꽃 폭죽: 멈추는 순간 팡파레 효과음과 함께 캔버스 축하 폭죽(Confetti Animation) 이펙트를 띄워주면 레크리에이션 무대의 분위기를 한층 더 고조시킬 수 있습니다.
가격 보기카톡 무료 상담