Cách dùng
- Nhập khoảng vào Tối thiểu và Tối đa. Số nguyên bất kỳ đều dùng được, kể cả số âm; nếu bạn để số lớn hơn vào ô Min, công cụ sẽ tự đổi chỗ cho bạn.
- Đặt Cần bao nhiêu số — từ 1 đến 1000 số trong một lần quay.
- Tick Không trùng lặp nếu cùng một số không được xuất hiện hai lần (người thắng minigame, số kiểu xổ số, xáo trộn một danh sách đánh số).
- Nhấn Tạo. Kết quả hiện trong ô lớn; các số cách nhau bằng dấu cách khi ít, và bằng dấu phẩy khi có hơn 20 số.
- Dùng Sao chép để đưa cả kết quả vào clipboard — tiện để dán vào một chủ đề Discord hoặc chat stream làm bằng chứng.
Những khoảng người ta thực sự hay dùng
Gần như mọi câu hỏi bắt đầu bằng "chọn ngẫu nhiên một…" đều quy về một khoảng và một số lượng. Dưới đây là cài đặt cho những trường hợp phổ biến nhất.
| Bạn cần gì | Min | Max | Cần bao nhiêu | Không trùng |
|---|---|---|---|---|
| Có / không, ai đi trước | 1 | 2 | 1 | tắt |
| Tung xúc xắc | 1 | 6 | 1 | tắt |
| Roll phần trăm cho một sự kiện ngẫu nhiên | 1 | 100 | 1 | tắt |
| Một người thắng trong 240 lượt tham gia | 1 | 240 | 1 | tắt |
| Ba người thắng trong 240 lượt | 1 | 240 | 3 | bật |
| Game ngẫu nhiên từ thư viện đánh số 87 game | 1 | 87 | 1 | tắt |
| Sáu số kiểu vé số | 1 | 49 | 6 | bật |
| Bản đồ ngẫu nhiên từ pool 7 bản đồ | 1 | 7 | 1 | tắt |
| Slot vũ khí ngẫu nhiên cho thử thách | 1 | 5 | 1 | tắt |
| Mã bốn chữ số | 1000 | 9999 | 1 | tắt |
Mẹo cho những thứ không phải là số — tên người, đội, game, hình phạt — là đánh số danh sách trước. Dòng 1, dòng 2, dòng 3, rồi rút số trong khoảng đó. Công cụ không bao giờ thấy danh sách của bạn, và đó chính là lý do không ai có thể tố nó thiên vị bạn bè của người tổ chức.
Cách quay số chọn người thắng minigame mà không ai cãi được
Một con số ngẫu nhiên tự nó chẳng chứng minh được gì. Điều khiến một lần quay khó bị bác bỏ là thứ tự bạn làm mọi việc.
- Chốt danh sách người tham gia trước và đăng công khai — danh sách bình luận, bảng tính, file CSV xuất ra, bất cứ thứ gì khán giả có thể đếm được.
- Đánh số các lượt tham gia từ 1 tới N. Tên trùng nhau chỉ nhận một số, không phải ba.
- Nói khoảng và số lượng cần chọn trước khi quay: "từ một tới 240, ba người thắng, không trùng". Việc thông báo sau khi số đã hiện ra mới là thứ khiến người ta nghi ngờ.
- Quay màn hình hoặc quay trực tiếp. Công cụ chạy trong trình duyệt và không lưu log, nên bản ghi của bạn mới là bằng chứng, không phải server của chúng tôi.
- Đăng số cùng với tên tương ứng.
Xác suất đơn giản hơn nhiều người nghĩ. Với một người thắng, mỗi lượt tham gia có xác suất 1/N: 1% với 100 lượt, khoảng 0,42% với 240, 0,1% với 1000. Quay ba người thắng với chế độ không trùng bật lên gần như gấp ba xác suất của một lượt — khoảng 1,25% trên 240 — vì sau mỗi lần rút, pool số còn lại nhỏ đi.
| Số lượt tham gia | Xác suất một lượt (1 người thắng) | Xác suất một lượt (3 người thắng, không trùng) |
|---|---|---|
| 50 | 2% | 6% |
| 100 | 1% | 3% |
| 240 | 0,42% | 1,25% |
| 1000 | 0,1% | 0,3% |
Những con số này đến từ đâu
Công cụ gọi crypto.getRandomValues(), Web Crypto API mà trình duyệt cũng dùng để tạo khóa mã hóa. Nó lấp đầy một ô 32-bit bằng các bit không thể đoán trước — không có seed nào để đoán, không có chu kỳ lặp nào để chờ.
Các bit thô một mình chưa phải là một khoảng công bằng. Một giá trị 32-bit có 2^32 = 4.294.967.296 trạng thái có thể, và con số này hiếm khi chia hết cho kích thước khoảng của bạn. Lấy ví dụ 1–100: 2^32 để lại phần dư 96, nên phép giá trị % 100 đơn thuần sẽ cho 96 số đầu tiên thêm một cơ hội thừa mỗi số. Cách sửa là lấy mẫu loại bỏ (rejection sampling): bất kỳ giá trị thô nào rơi vào phần dư đó bị loại và một giá trị mới được rút. Với khoảng 1–100, điều này xảy ra khoảng 1 lần trên 45 triệu lần rút, bạn sẽ không thấy khác biệt về tốc độ, nhưng mọi số trong khoảng đều có cơ hội y hệt nhau.
Những khoảng có kích thước là lũy thừa của 2 — 1–2, 1–8, 1–256 — chia hết và không bao giờ cần rút lại. Mọi khoảng khác đều cần, nên bước kiểm tra này luôn bật.
Lựa chọn thay thế mà phần lớn trang web dùng, Math.random(), là một bộ tạo giả ngẫu nhiên: nhanh, đủ tốt cho hoạt ảnh nền, nhưng nó có seed và kết quả là một chuỗi xác định. Với bất cứ thứ gì gắn liền với phần thưởng, đó là công cụ sai.
Bật hay tắt trùng lặp
Khi tắt Không trùng lặp, mỗi con số là một lần rút độc lập, y như tung lại cùng một con xúc xắc. Trùng lặp không phải lỗi — đó chính là hình dạng của sự ngẫu nhiên thật, và nó xuất hiện sớm hơn nhiều so với người ta tưởng.
| Số lần rút | Khoảng 1–100 | Khoảng 1–1000 |
|---|---|---|
| 5 số | 9,7% | 1,0% |
| 10 số | 37,2% | 4,4% |
| 20 số | 87,0% | 17,4% |
| 25 số | 96,2% | 26,1% |
| 40 số | trên 99,9% | 54,6% |
Bảng cho thấy xác suất ít nhất hai số trong lần rút trùng nhau. Hai mươi số trong một trăm trùng nhau gần chín trên mười lần — đó là hiệu ứng nghịch lý sinh nhật, thứ khiến người ta ngạc nhiên trong một lớp ba mươi học sinh.
Bật tick lên và mọi số trong kết quả đều là duy nhất. Nếu bạn xin nhiều số hơn khoảng đó có thể chứa — 60 số duy nhất giữa 1 và 50 — công cụ sẽ lặng lẽ đưa bạn cả khoảng đó, 50 số theo thứ tự ngẫu nhiên. Đó cũng là cách nhanh nhất để xáo trộn một danh sách đánh số: đặt khoảng thành 1–N, số lượng là N, tắt trùng lặp, và đọc kết quả từ trên xuống làm thứ tự mới.
Roll cho đồ, thử thách và luật riêng
Từ rất lâu trước các bot minigame, người chơi giải quyết tranh cãi bằng cách roll một con số. Quy ước này sống lâu hơn mọi MMO đã nghĩ ra nó: mọi người roll trong cùng một khoảng, số cao nhất lấy vật phẩm, và hòa thì roll lại chỉ giữa những người hòa.
Để chạy roll ở đây: đặt khoảng 1–100, để số lượng là 1, và để mỗi người tự nhấn Tạo trên màn hình của họ hoặc bạn roll thay cho tất cả rồi đăng danh sách theo thứ tự. Hai thói quen giữ mọi thứ sạch sẽ: nói khoảng trước lần roll đầu tiên, và roll lại khi hòa thay vì chia đôi phần thưởng. Một lần roll từ tối qua không tính cho tối nay — một con số cũ là thứ dễ bị tranh cãi nhất.
Cùng ô đó cũng giải quyết những quyết định nhỏ làm nên một buổi chơi thú vị.
| Khoảng | Con số nghĩa là gì | Ví dụ |
|---|---|---|
| 1–100 | Roll đồ, số cao nhất lấy | Hai người muốn cùng một món đồ rơi ra |
| 1–7 | Vị trí trong pool bản đồ đánh số | Trận scrim tiếp theo chơi bản đồ nào |
| 1–5 | Slot đồ hoặc vũ khí | Bạn chơi vòng đó với bất cứ gì roll ra |
| 1–10 | Thử thách tự đặt khắc nghiệt cỡ nào | 10 nghĩa là không ngắm scope, không ngồi, không giao tiếp |
| 1–20 | Chỉ số trong một danh sách thử thách đã viết sẵn | Đánh số danh sách trước, rồi rút |
| 1–4 | Ai mua đồ, ai bỏ đồ, ai gọi lệnh | Bốn người chơi, một nhiệm vụ |
Viết ra thì thấy mô hình luôn giống nhau: biến câu hỏi thành một danh sách đánh số, roll trong danh sách đó, và chấp nhận kết quả. Công cụ cung cấp con số; sự công bằng đến từ việc đồng ý về khoảng trước khi roll.
Điểm khác biệt của công cụ này
- Ngẫu nhiên mã hóa với lấy mẫu loại bỏ, được mô tả đầy đủ ở trên thay vì một huy hiệu "công bằng đã kiểm chứng" mơ hồ.
- Tới 1000 số trong một lần quay, và chế độ Không trùng lặp cũng hoạt động như công cụ xáo trộn danh sách.
- Khoảng âm và khoảng đảo ngược đều được xử lý thay vì báo lỗi.
- Một nút Sao chép đưa toàn bộ kết quả thành văn bản cho tin nhắn Discord hoặc bài đăng minigame.
- Không tài khoản, không captcha, không quảng cáo che nút Tạo, và trang hoạt động tốt trên điện thoại.
Điều công cụ cố tình không làm: nó không giữ lịch sử giữa các lần tải trang, không lưu danh sách tên, và không có chế độ "trọng số" hay "may mắn". Một lần rút có trọng số không còn là rút ngẫu nhiên nữa, và lịch sử sống sót qua việc tải lại trang nghĩa là gửi số của bạn đi đâu đó.
Quyền riêng tư
Mọi thứ xảy ra bên trong trình duyệt của bạn. Khoảng bạn nhập, số lượng và các con số bạn nhận được không bao giờ được gửi đi đâu, không có tài khoản và không có log — nên không ai, kể cả chúng tôi, có thể tra cứu hay thay đổi những gì bạn đã rút. Tải lại trang và kết quả trước đó biến mất vĩnh viễn, đó là lý do quay màn hình mới là bằng chứng đúng đắn cho một minigame công khai.
Câu hỏi thường gặp
Công cụ tạo số ngẫu nhiên này có thực sự ngẫu nhiên không?
Nó dùng crypto.getRandomValues() — bộ tạo mã hóa của trình duyệt — cộng với lấy mẫu loại bỏ để xóa độ lệch modulo, nên mọi số trong khoảng của bạn có cơ hội y hệt nhau. Đây không phải chuỗi Math.random() có seed.
Làm sao chọn người thắng minigame với công cụ này?
Đánh số các lượt tham gia từ 1 đến N, đặt Min là 1 và Max là N, để Cần bao nhiêu số là 1, rồi nhấn Tạo. Với nhiều người thắng, tăng Cần bao nhiêu số và tick Không trùng lặp để cùng một người không thắng hai lần.
Có tạo được số không lặp lại không?
Có — đó là ô tick Không trùng lặp. Mọi số trong kết quả đều duy nhất. Xin nhiều số hơn khoảng đó chứa, bạn sẽ đơn giản nhận được cả khoảng theo thứ tự ngẫu nhiên.
Khoảng lớn nhất và bao nhiêu số một lần?
Min và Max nhận bất kỳ số nguyên nào bạn gõ, kể cả số âm, và bạn có thể rút từ 1 đến 1000 số chỉ trong một cú nhấn. Số thập phân sẽ được làm tròn xuống, và nếu Max nhỏ hơn Min thì hai giá trị tự động đổi chỗ.
Nó có nhớ những số trước đó của tôi không?
Không. Không có lịch sử và không gì được lưu lại: tải lại trang bắt đầu một lượt quay sạch. Nhấn Sao chép trước khi rời trang nếu bạn cần giữ kết quả.
Nó có đoán được số xổ số không?
Không, và không công cụ nào làm được điều đó. Nó rút số với xác suất bằng nhau, hữu ích khi chọn số nào để chơi, nhưng một lần quay thật là một sự kiện độc lập riêng biệt — kết quả trước không thay đổi gì kết quả tiếp theo.
Vì sao tôi nhận cùng một số hai lần liên tiếp?
Vì các lần rút độc lập không có trí nhớ. Trong khoảng 1–6, cùng một giá trị lặp lại khoảng một lần trên sáu lần rút, và đó là hành vi đúng. Bật Không trùng lặp khi việc lặp lại không được phép.