본문으로 건너뛰기

무작위 목록 셔플러 - 무료 온라인 목록 무작위화 도구

피셔-예이츠 셔플 알고리즘을 사용해 이름, 학생, 팀, 작업 등 어떤 목록이든 무작위로 섞어주는 무료 온라인 도구다. 모든 순서가 나올 확률이 동일하도록 수학적으로 보장하며, 교사의 추첨, 토너먼트 대진표 작성, 공정한 의사결정에 두루 활용된다.

무작위 목록 섞기

섞을 항목을 한 줄에 하나씩 입력하세요. 빈 줄은 자동으로 제거됩니다.

로딩 계산기...
📚

문서화

무작위 목록 섞기란 무엇인가?

무작위 목록 섞기는 항목 목록을 받아 새롭고 무작위적인 순서로 다시 배열하는 도구입니다. 이름, 작업 또는 그 밖의 어떤 내용이든 한 줄에 하나씩 입력하면, 이 도구가 가능한 모든 순서가 동일한 확률로 나타나도록 항목을 재배열합니다. 이 도구는 편향되지 않은 무작위 순서를 생성하는 것으로 잘 알려진 피셔-예이츠 셔플 알고리즘을 사용합니다.

무작위 목록 섞기 사용 방법

  1. 상자에 목록을 입력하거나 붙여넣습니다. 한 줄에 항목 하나씩 입력합니다.
  2. "목록 무작위화"를 클릭합니다. 항목이 즉시 재배열됩니다.
  3. 버튼 아래에서 새 순서에 따라 번호가 매겨진 섞인 목록을 확인합니다.
  4. 새로운 독립 셔플을 실행하려면 "목록 무작위화"를 다시 클릭합니다.
  5. 새 순서를 복사하려면 "결과 복사"를 클릭하고, 처음부터 다시 시작하려면 "지우기"를 클릭합니다.

입력란의 빈 줄은 자동으로 제거되므로, 줄바꿈을 추가해도 결과에 빈 항목이 생기지 않습니다.

피셔-예이츠 셔플 알고리즘은 어떻게 작동하는가?

피셔-예이츠 셔플은 목록의 마지막 항목부터 시작해 앞쪽으로 이동하면서 목록을 한 번 순회합니다. 각 단계에서 아직 배치되지 않은 목록의 일부에서 항목 하나를 무작위로 선택한 뒤, 현재 위치의 항목과 교환합니다.

피셔-예이츠 셔플 공식

n개 항목으로 이루어진 목록에서 위치는 0부터 n − 1까지 번호가 매겨집니다.

1for i from n − 1 down to 1:
2    choose a random whole number j, where 0 ≤ j ≤ i
3    swap the items at positions i and j
4

반복문은 n − 1번 실행되므로 셔플에는 전체적으로 약 n단계가 걸립니다. 이를 선형 시간이라고 하며 O(n)으로 표기합니다. 알고리즘이 각 위치를 정확히 한 번씩 처리하고, 명확하게 정의된 축소되는 항목 집합에서 선택하므로 가능한 n!가지 순서(n의 계승: n × (n − 1) × ... × 1)는 모두 결과가 될 확률이 같습니다.

네 항목 목록을 섞는 예

위치 0부터 3까지 네 항목이 있다고 합시다. Apple, Banana, Cherry, Date입니다.

  • i = 3: 무작위로 선택된 위치는 j = 0입니다. 위치 3과 0을 교환합니다 → Date, Banana, Cherry, Apple
  • i = 2: 무작위로 선택된 위치는 j = 2입니다. 한 위치를 자기 자신과 교환해도 아무것도 바뀌지 않습니다 → Date, Banana, Cherry, Apple
  • i = 1: 무작위로 선택된 위치는 j = 0입니다. 위치 1과 0을 교환합니다 → Banana, Date, Cherry, Apple

최종 순서: Banana, Date, Cherry, Apple.

네 항목의 경우 4! = 24개의 가능한 순서가 있습니다. 이 순서를 포함한 각각의 순서가 셔플할 때마다 나타날 확률은 1 대 24입니다.

무작위 쌍을 그냥 교환하면 안 되는 이유?

두 무작위 위치를 골라 교환하는 과정을 여러 번 반복하는 더 단순해 보이는 방법은 무작위처럼 보이지만 실제로는 그렇지 않습니다. 1950년대의 초기 셔플 프로그램 중 일부가 이런 방식으로 작동했으며, 개별 실행에서 의심스러운 점이 드러나지 않더라도 특정 순서를 다른 순서보다 은연중에 더 선호했습니다. 피셔-예이츠 셔플에서는 각 항목이 정확히 한 번 이동하고, 선택지가 정확하게 줄어드는 집합에서 정해진 위치로 이동하므로 모든 최종 순서가 같은 확률을 갖습니다.

피셔-예이츠 셔플은 어디에서 비롯되었는가?

통계학자 로널드 피셔와 프랭크 예이츠는 실험을 설계할 때 손으로 목록을 섞는 방법을 통계 표 책에서 1938년에 설명했습니다. 1964년에 리처드 더스텐펠트는 남은 항목을 추적하기 위한 두 번째 목록 없이 목록을 그 자리에서 재배열할 수 있도록 이 방법을 컴퓨터용으로 개량했습니다. 도널드 크누스는 1969년 저서 The Art of Computer Programming에 이 컴퓨터 버전을 수록했으며, 이 때문에 이 방법을 크누스 셔플이라고도 합니다. 오늘날 웹 브라우저도 같은 알고리즘을 사용합니다.

목록 섞기의 일반적인 용도

  • 수업에서 학생들이 발표하거나 질문에 답하는 순서를 정하기
  • 토너먼트 대진표의 시드를 정하거나 게임의 차례 순서를 정하기
  • 그룹을 무작위 팀으로 나누기
  • 특정 선택을 편애하지 않고 후보 목록에서 식당, 영화 또는 작업을 고르기

단순한 셔플이 항상 적합한 것은 아닙니다. 일부 항목이 다른 항목보다 더 자주 나타나야 한다면 가중치 선택이 더 적합합니다. 모든 범주가 반드시 포함되어야 한다면 한 번의 무작위 셔플보다 층화 표본 추출이 더 효과적입니다.

자주 묻는 질문

셔플은 정말 무작위인가?

이 방법은 웹 브라우저의 의사난수 생성기(PRNG)에 의존합니다. 의사난수 생성기는 실용적인 목적에서 무작위처럼 작동하는 수열을 만들어 내는 공식입니다. 수업에서 순서를 정하거나, 토너먼트 시드를 정하거나, 영화를 고르는 데는 충분합니다. 하지만 암호학, 도박 시스템 또는 예측 불가능성이 금전이나 보안에 영향을 미치는 용도로 설계된 것은 아니며, 그런 경우에는 인증된 난수 생성기가 필요합니다.

이 도구는 내 목록을 서버로 보내는가?

셔플 자체는 JavaScript를 사용해 전적으로 브라우저에서 실행되므로 목록을 재배열하는 데 네트워크 요청이 필요하지 않습니다. 현재 목록은 페이지의 웹 주소에도 기록되므로 새로 고침하거나 북마크해도 목록이 사라지지 않습니다. 그 주소를 복사하거나 공유하거나 다시 열면 목록도 함께 전달되며, 나중에 해당 페이지를 불러오는 서버로 전송될 수 있습니다. 이 점이 문제가 된다면 목록에 민감한 정보를 넣지 마십시오.

중복 항목은 어떻게 되는가?

중복 항목은 그대로 유지됩니다. 입력에 "Sam"이 두 번 나타나면 섞은 결과에도 여전히 두 번 나타나며, 서로 다른 위치에 놓일 수 있습니다.

섞을 수 있는 항목 수에 제한이 있는가?

도구 자체에는 제한이 없습니다. 셔플이 선형 시간으로 실행되므로 최신 기기에서는 긴 목록도 1초도 안 되는 시간에 재배열됩니다.

셔플은 정렬과 어떻게 다른가?

정렬은 알파벳순과 같은 고정된 규칙에 따라 항목을 배열하므로 동일한 입력에 항상 같은 결과를 냅니다. 셔플은 항목을 무작위로 배열하므로 입력이 같아도 거의 매번 다른 순서를 만듭니다.

같은 목록을 두 번 이상 섞을 수 있는가?

가능합니다. "목록 무작위화"를 클릭할 때마다 이전 셔플과 독립적으로 알고리즘이 다시 실행됩니다. 목록이 작으면 우연히 같은 순서가 반복될 수 있지만, 목록이 클수록 그 가능성은 극히 낮아집니다.