Unipicker추첨 백서
알고리즘 · LESSON 2

난수로 당첨자 뽑기

가중치 구간 추첨대량 응모자 추첨

난수 하나로 당첨자를 뽑을 수 있어요. 큰 난수를 '응모자 수'로 나눈 나머지가 당첨 번호예요.

개념

왜 '나머지'를 쓸까?

문제 — 난수는 852,345,724처럼 길고 복잡한 수로 나와요. 그런데 응모자는 5명뿐. 이렇게 복잡한 수를 그대로 당첨 번호로 쓸 순 없어요(852,345,724번 응모자는 없으니까요).

해결 — 그래서 나머지를 써요. 어떤 큰 수든 5로 나눈 나머지는 항상 0·1·2·3·4 중 하나예요. 응모자 번호 범위에 딱 맞죠.

예시로 보기 — 짧은 난수든, 8억 같은 큰 난수든 똑같이 나머지를 구하면 돼요.

난수÷ 응모자 수몫(바퀴)나머지→ 당첨 번호
145명245번
853,271,9465명170,654,38912번
83명223번
1,200,000,0077명171,428,57234번
700,000,0008명87,500,00001번
난수가 8억이라 수억 바퀴를 돌아도, 멈춘 자리(나머지)는 항상 응모자 수보다 작아요. 그 나머지에 1을 더한 게 당첨 번호예요 (나머지는 0부터 시작하지만 번호는 1번부터 시작하니, 1을 더해 맞춰줘요 — 나머지 0 → 1번, 1 → 2번 …). 단, 17을 5명처럼 묶음이 딱 안 떨어지는 수는 1~3번이 살짝 유리해지는 불공정 난수라, 이런 수는 버리고 다시 뽑아요(불공정 난수 버리기).
실험

난수를 뽑아 당첨자 정하기

응모자 8명 중에서 난수를 뽑아 당첨자를 정해요. 많이 뽑을수록 모두 골고루 뽑히는지 살펴봐요.

응모자 정보
난수 뽑기 버튼을 눌러보세요.
누적 결과
공정 구간 난수만 '나머지'로 바꿔 1~8 당첨 번호를 정해요(불공정 난수는 버려요). 많이 뽑을수록 모두 골고루 뽑혀요 — 그래서 공정한 거예요.