liminfo

Random Generator

난수/랜덤 문자열/추첨/뽑기 생성기

Random Generator 소개

랜덤 생성기는 세 가지 모드를 제공하는 다목적 브라우저 기반 도구입니다. 난수 생성 모드에서는 최솟값, 최댓값, 개수를 지정하고 중복 없음 옵션을 활성화하면 Fisher-Yates 셔플 알고리즘으로 중복 없이 균등한 확률의 난수를 생성합니다.

랜덤 문자열 모드에서는 대문자(A-Z), 소문자(a-z), 숫자(0-9), 특수문자(!@#$%^&* 등) 네 가지 문자 클래스를 자유롭게 조합해 1~256자 길이의 임의 문자열을 생성할 수 있습니다. 생성된 문자열은 버튼 하나로 클립보드에 복사되어 비밀번호 생성이나 API 키 발급에 바로 활용할 수 있습니다.

추첨/뽑기 모드는 줄바꿈으로 구분된 항목 목록에서 지정한 수만큼 중복 없이 무작위로 선택합니다. 복원 없는 무작위 추출로 각 항목이 선택될 확률이 동등하게 보장되어, 팀 추첨, 경품 추첨, 업무 배정 등 공정한 선택이 필요한 모든 상황에 활용할 수 있습니다.

주요 기능

  • 최솟값·최댓값·개수 설정이 가능한 난수 생성
  • Fisher-Yates 셔플 기반 중복 없음 모드로 공정한 비복원 추출
  • 대문자·소문자·숫자·특수문자 클래스별 선택 가능한 랜덤 문자열 생성
  • 1~256자 길이 설정으로 비밀번호 및 토큰 생성에 최적
  • 생성된 문자열 원클릭 클립보드 복사
  • 줄바꿈 구분 목록에서 N개 중복 없이 선택하는 추첨/뽑기 모드
  • 100% 클라이언트 사이드 처리 — Math.random()으로 브라우저에서만 생성
  • 다크 모드 지원 및 모든 기기에서 사용 가능한 반응형 레이아웃

자주 묻는 질문

난수 생성기는 어떻게 작동하나요?

일반 모드에서는 Math.floor(Math.random() * (max - min + 1)) + min 공식으로 지정 범위 내에서 균등하게 난수를 생성합니다. 중복 없음 옵션 활성화 시 전체 범위 배열을 Fisher-Yates 알고리즘으로 셔플한 후 앞에서 N개를 결과로 반환합니다.

중복 없음 옵션은 정말 공정한가요?

네. Fisher-Yates(Knuth) 셔플은 모든 순열에 동등한 확률을 부여하는 비편향 알고리즘입니다. 범위 내 모든 숫자가 어느 위치에 올 확률이 수학적으로 동일하여 복원 없는 공정한 추출을 보장합니다.

생성된 문자열이나 비밀번호는 얼마나 안전한가요?

Math.random()은 현대 브라우저에서 암호학적으로 시드된 의사난수 생성기(PRNG)를 사용합니다. 일반적인 비밀번호 생성에는 충분하지만, 보안이 매우 중요한 암호화 키 생성에는 Web Crypto API(window.crypto.getRandomValues)를 사용하는 전문 비밀번호 관리자를 권장합니다.

특수문자 모드에는 어떤 문자가 포함되나요?

특수문자 옵션 활성화 시 !@#$%^&*()_+-=[]{}|;:,.<>? 문자들이 포함됩니다. 대부분의 웹서비스 비밀번호 정책과 호환되는 일반적인 특수문자 세트입니다. 사용 전 해당 서비스의 허용 특수문자 목록을 확인하세요.

추첨/뽑기 모드는 어떻게 작동하나요?

텍스트 영역에 항목을 줄바꿈으로 입력하고 뽑기 수를 지정하면, 빈 줄을 제외한 항목 배열에서 무작위로 인덱스를 선택하고 해당 항목을 풀에서 제거하는 방식을 반복합니다. 한 번의 추첨에서 동일 항목이 두 번 선택되지 않습니다.

추첨 모드로 복권이나 팀 구성에 사용할 수 있나요?

네, 정확히 이런 용도를 위해 설계되었습니다. 참가자 이름을 한 줄에 하나씩 입력하고 당첨자 수를 지정한 후 뽑기 버튼을 누르세요. 각 이름의 선택 확률이 동등하여 경품 추첨, 팀 배정, 업무 순서 결정 등에 공정하게 활용할 수 있습니다.

생성할 수 있는 난수의 최대 개수는 얼마인가요?

브라우저가 처리할 수 있는 한 별도의 상한선은 없습니다. 중복 없음 모드에서는 개수가 범위 크기(max - min + 1)를 초과할 수 없습니다. 일반 모드에서는 수천 개의 난수도 생성 가능하지만 매우 많은 수는 렌더링이 느릴 수 있습니다.

음수 범위의 난수도 생성할 수 있나요?

네. 최솟값에 -100 같은 음수를 입력하고 최댓값은 양수나 음수 모두 가능합니다. 음수 범위를 포함한 정수 구간에서 균등 분포로 난수를 정확하게 생성합니다.