랜덤 이름 뽑기
이름이 20개일 때 1명을 뽑으면 각 이름이 뽑힐 확률은 5%이고, 중복 없이 3명을 뽑으면 15%입니다.
사용 방법
- 이름을 한 줄에 하나씩, 또는 쉼표로 구분해 입력하거나 붙여 넣으세요. 빈 줄과 여분의 공백은 무시합니다.
- 몇 명을 뽑을지 입력하고 뽑기를 누릅니다.
- 「이미 뽑힌 사람 제외」를 켜면 당첨자가 겹치지 않게 여러 번 추첨할 수 있습니다. 초기화를 누르면 모두 다시 후보가 됩니다.
계산 방법
브라우저의 암호학적 난수로 피셔-예이츠 알고리즘을 써서 명단을 섞고 앞에서부터 N명을 가져옵니다. 모든 이름의 확률이 같고, 한 번 추첨에서 같은 사람이 두 번 뽑히지 않습니다.
대소문자만 다른 이름은 하나로 합칩니다. "Ann"과 "ann"은 한 사람으로 치고, 처음 입력한 표기를 남깁니다.
이름 T개에서 N명을 뽑으면 한 번 추첨에서 각 이름이 뽑힐 확률은 N / T입니다. 20명 중 3명이면 15%입니다.
자주 묻는 질문
정말 무작위인가요?
네. crypto.getRandomValues와 거부 샘플링을 써서, 단순한 나머지 연산이나 Math.random 방식에서 생길 수 있는 작은 치우침을 피합니다.
명단보다 많은 인원을 뽑으려 하면요?
아직 뽑을 수 있는 인원 수와 함께 오류를 보여 줍니다. 한 번 추첨에서 같은 이름을 두 번 뽑는 일은 없습니다.
「이미 뽑힌 사람 제외」는 무엇인가요?
앞선 추첨에서 뽑힌 이름은 초기화를 누를 때까지 다음 추첨에서 빠집니다. 남은 인원 수로 아직 후보가 몇 명인지 볼 수 있습니다.
같은 이름이 왜 하나로 줄었나요?
대소문자를 무시했을 때 같은 이름은 한 사람으로 봅니다. 동명이인이 있으면 성이나 이니셜을 붙여 구분하세요.
입력한 이름이 저장되나요?
아니요. 이름은 브라우저 탭 안에만 있고, 페이지를 닫거나 새로고침하면 사라집니다.