NumberGenerator

Trình tạo số ngẫu nhiên

Randomizer cho mọi khoảng số: lấy nhiều số cùng lúc, có chế độ không trùng. Miễn phí, không cần đăng ký, và không có gì rời khỏi thiết bị của bạn.

0 người tham gia
Quay thưởng có bảo vệ Máy chủ chọn và ký kết quả — sau đó không ai thay đổi được

Nhấn phím cách để tạo số

Phiên này

Được tính trong trình duyệt này, không gửi đi đâu cả

Nhấn “Tạo số” — biểu đồ của mọi con số trong phiên này, cùng giá trị trung bình và độ phân tán, sẽ hiện ở đây.

0Lượt quay
0Số khác nhau
—Trung bình
—Độ phân tán

Khoảng số phổ biến

Những khoảng số được nhập tay nhiều nhất — mỗi khoảng mở ra là dùng được ngay.

Trình tạo này làm gì

Hãy nhập giới hạn dưới, nhập giới hạn trên, rồi nhấn nút. Randomizer trả về một số nguyên, và mọi số trong khoảng đều đã có cơ hội xuất hiện đúng bằng nhau. Nghe thì như chuyện nhỏ, và một phần đúng là như vậy — nhưng gần như mọi trình tạo miễn phí trên mạng đều làm sai ít nhất một chi tiết, còn những cái sai ấy chỉ trở nên lộ ra đúng vào lúc cái giá phải trả trở nên lớn.

Ở đây có ba điểm khác. Con số được lấy từ bể entropy mật mã của hệ điều hành, chứ không phải từ một công thức tính toán đơn giản. Độ lệch do làm tròn — cái làm những số nhỏ trong khoảng ra thường hơn — đã được sửa. Và nếu muốn, kết quả có thể được chứng minh về sau: chứng minh rằng nó thật sự đến từ chính những dữ liệu bạn đã công bố trước đó. Đó chính là thứ bạn cần khi có phần thưởng đặt trên bàn.

Mọi thứ diễn ra bên trong trình duyệt. Khi bạn nhấn nút, không một yêu cầu nào được gửi tới máy chủ, không có tài khoản, không có cookie theo dõi và không có bản ghi nào về những gì bạn đã tạo ra. Bạn tự kiểm tra được điều đó: hãy mở trình kiểm tra mạng trong trình duyệt, tạo một trăm con số, và thấy rằng không có gì đi ra ngoài.

Nếu lần nào bạn cũng nhập đúng một khoảng số, hãy mở trang đã sẵn sàng và đừng gõ các giới hạn bằng tay: từ 1 đến 10, từ 1 đến 20, từ 1 đến 50, từ 1 đến 100 hoặc từ 1 đến 1000. Trang nào mở ra cũng đã được đặt sẵn.

Randomizer và trình tạo số ngẫu nhiên có phải là một?

Trong cách nói hằng ngày, randomizer là bất cứ công cụ nào chọn một phương án mà không nhìn: một con số, một người thắng trong danh sách, một người tham gia giữa các bình luận. Trình tạo số ngẫu nhiên là một randomizer mà các phương án của nó là những số nguyên trong khoảng bạn đặt. Nên đúng vậy: trang bạn đang ở chính là một randomizer số, chỉ là được gọi bằng cái tên chính xác hơn.

Người ta tìm trang này bằng nhiều cách gọi khác nhau: tạo số ngẫu nhiên, quay số ngẫu nhiên, trình tạo số ngẫu nhiên online, random số, vòng quay may mắn. Đằng sau tất cả những cái tên ấy chỉ có một công cụ — cái ở trên đây. Khác nhau là ở thói quen: ai chỉ cần một con số thì gõ ngắn gọn “tạo số”, còn ai muốn nhấn mạnh rằng không ai dàn xếp trước kết quả thì thêm “ngẫu nhiên” vào.

Sự khác biệt xuất hiện khi thứ cần chọn là một cái tên chứ không phải một con số. Khi đó chẳng cần đánh số người tham gia bằng tay — hãy mở randomizer quay thưởng: nó nhận cả danh sách, tự chọn người thắng cùng người dự bị và trả cho người xem một liên kết bằng chứng. Còn nếu câu hỏi cần một câu trả lời chứ không cần một con số, đã có “Có hay Không”.

Người ta dùng nó ở đâu

🎁Quay thưởng

Hãy đánh số người tham gia, chọn người thắng và công bố một liên kết để ai cũng dựng lại được đúng kết quả đó. Chi tiết về cách nó hoạt động nằm ở trang quay thưởng có bảo vệ.

🎓Lớp học

Gọi học sinh lên bảng mà không ưu ái dãy đầu, chia nhóm, phát số thứ tự bài tập. Chế độ toàn màn hình đưa các con số lên máy chiếu.

🎲Game bàn

Mất xúc xắc không còn là vấn đề: đã có xúc xắc sáu mặt và xúc xắc d20, còn chế độ không trùng thì rút thẻ mà không trả lại.

🏆Thể thao và bắt thăm

Chia làn chạy, xác định thứ tự xuất phát, quyết xem ai đi trước. Với các thể thức xổ số thì đã có xổ số 6/49 làm sẵn.

🧪Kiểm thử và lấy mẫu

Chọn những dòng ngẫu nhiên để soát, lấy một mẫu từ danh sách đã đánh số, còn cho các tài khoản thử thì có trình tạo mật khẩu, trình tạo nickname và trình tạo tên và họ.

🤔Ra quyết định

Khi hai phương án thật sự ngang nhau, hãy thôi day dứt và để con số quyết định. Cho một câu hỏi đơn lẻ thì có công cụ riêng “Có hay Không”.

Bạn làm được gì với kết quả

  • Trình chiếu toàn màn hình. Một cú nhấn là con số chiếm cả màn hình, để cả một khán phòng đọc được. Làm cho máy chiếu, cho sân khấu và cho livestream; không đối thủ nào có thứ này.
  • Lượt quay lặp lại được. Hãy công bố một cụm từ mã trước khi quay, và kết quả trở thành dựng lại được: mỗi người xem nhập đúng cụm từ đó ở máy mình và nhận đúng con số đó.
  • Chế độ không trùng. Rút mà không trả lại — đúng là thứ bạn cần khi đang phát những số thứ tự duy nhất, chứ không phải khi tung xúc xắc.
  • Thống kê trực tiếp của phiên. Biểu đồ của mọi thứ bạn đã rút ra, kèm giá trị trung bình và độ phân tán: bạn thấy bằng chính mắt mình rằng phân bố là đều.
  • Xuất ra CSV. Có ích khi bạn đã tạo năm mươi con số và cần chuyển chúng vào bảng tính.
  • Đọc to kết quả. Kết quả được đọc bằng ngôn ngữ của trang — tiện cho khả năng tiếp cận và cho lúc tay bạn đang bận.

Điều gì làm một lượt quay trở nên công bằng

Công bằng không phải một tính chất mà là ba, và các công cụ thông thường chỉ cho bạn tính chất đầu tiên. Nguồn phải không đoán trước được, việc chuyển sang khoảng số của bạn phải không lệch, và bản thân quy trình phải kiểm tra được bởi người không tin bạn. Một trình tạo có thể ngẫu nhiên hoàn hảo mà vẫn vô dụng cho quay thưởng, bởi người xem không có cách nào phân biệt một lượt quay ngay thẳng với một lượt quay đã dàn xếp.

Ở đây có hai chế độ khác nhau lo cho tính chất thứ ba, và bật cả hai cùng lúc thì chẳng có ý nghĩa gì. Quay thưởng có bảo vệ dành cho trường hợp thông thường: máy chủ chọn và ký con số, còn bạn đưa cho người xem một liên kết để họ thấy đúng cái kết quả mà bạn đã thấy. Lượt quay lặp lại được dành cho trường hợp người xem phải tự tay kiểm tra lượt quay: kết quả được suy ra từ một cụm từ mã, nên bất cứ ai biết cụm từ đó cũng nhận được đúng con số ấy ở máy mình. Thứ tự “công bố cụm từ trước, quay sau” cũng giữ được tính không đoán trước: chừng nào cụm từ chưa được nêu ra, không ai đoán được kết cục.

Sự ngẫu nhiên thật ra đời thế nào

Máy tính là cỗ máy được dựng lên vì tính đoán trước được, nên đề nghị nó đưa ra một con số thật sự không đoán trước được đặt nó vào thế khó xử. Có hai họ câu trả lời cho việc đó, và khoảng cách giữa chúng quan trọng hơn người ta vẫn nghĩ.

Tính không đoán trước được đến từ đâu

Hệ điều hành duy trì một bể entropy: một hồ chứa tiếng ồn được thu từ những sự kiện vật lý mà nó không thể đoán trước. Thời điểm chính xác của những lần nhấn bàn phím, độ rung của các ngắt đĩa và ngắt mạng, những dao động của các bộ đếm phần cứng, và trên các bộ xử lý hiện đại còn có thêm một lệnh riêng lấy tiếng ồn nhiệt ngay bên trong lớp silicon. Đó không phải một công thức. Đó là phép đo thế giới vật lý, và chính vì thế kết quả là không đoán trước được, chứ không chỉ đơn thuần là phức tạp.

Trình tạo xin các byte từ bể đó qua Web Crypto API bằng lời gọi crypto.getRandomValues(). Đó cũng chính là nguồn mà trình duyệt dùng để tạo ra những khóa mã hóa bảo vệ phiên ngân hàng của bạn.

Vì sao Math.random là không đủ

Phần lớn các trình tạo nhanh đều gọi Math.random(). Cách đó tiện, nhanh, và là một công thức tính toán thuần túy với một trạng thái nội bộ bị ẩn đi. Hãy đưa cho nó một giá trị khởi đầu — nó sẽ trả về đúng cùng một chuỗi. Hãy quan sát đầu ra của nó đủ lâu — trạng thái đó có thể được dựng lại, và sau đó mọi giá trị tương lai đều đã biết trước. Để trộn mấy tấm ảnh nền thì thế là bình thường. Để quyết định ai nhận phần thưởng thì không, và chính những người làm trình duyệt cũng viết thẳng điều đó trong tài liệu của họ.

Cái lệch do làm tròn mà gần như không ai sửa

Đây là cái sai trốn ngay trước mắt. Giả sử bạn có các byte ngẫu nhiên từ 0 đến 255, mà bạn lại cần một số từ 1 đến 100. Nước đi hiển nhiên là lấy phần dư của phép chia cho 100 rồi cộng một. Trông thì vô hại, nhưng nó sai: 256 không chia hết cho 100, nên các giá trị từ 1 đến 56 ra thường hơn các giá trị từ 57 đến 100. Độ lệch thì nhỏ, cỡ một phần hai trăm, nhưng nó có hệ thống, nó không bao giờ tự trung bình lại theo thời gian, và trên một lượt rút lớn thì nó hoàn toàn cảm nhận được.

Chúng tôi tránh nó bằng phép lấy mẫu có loại bỏ: trình tạo bỏ đi những giá trị rơi vào cái đuôi không đều và đơn giản là rút lại. Việc đó tốn vài micro giây và cho ra một phân bố đều chính xác, chứ không phải đều xấp xỉ.

Kết quả chứng minh được, khi có phần thưởng đặt trên bàn

Không đoán trước được và chứng minh được là hai thứ ngược nhau, và không thể có cả hai cùng một lúc. Mẹo nằm ở chỗ làm chúng lần lượt. Hãy bật “lượt quay lặp lại được”, và trình tạo sẽ thôi lấy entropy từ bể, thay vào đó suy ra kết quả từ một cụm từ mã mà bạn có thể công bố công khai.

Cách dùng nó ngay thẳng là công bố cụm từ trước, quay sau. Chẳng hạn, người ta hay lấy giá đóng cửa của một mã chứng khoán vào ngày mai, hoặc số của một kỳ xổ số trong tương lai làm cụm từ. Chừng nào cụm từ chưa được nêu ra thì không ai biết kết cục, kể cả bạn, vì bản thân giá trị đó còn chưa tồn tại. Khi nó thành công khai, bạn tiến hành lượt quay, còn người xem nào cũng nhập đúng cụm từ đó ở máy mình và đi tới đúng người thắng đó.

Nếu người xem không cần tự tay kiểm tra, bật “quay thưởng có bảo vệ” thì đơn giản hơn: khi đó máy chủ chọn và ký con số, còn bạn chỉ cần đưa ra liên kết tới trang kết quả.

Vì sao cùng một con số cứ ra liên tiếp

Đây là lời phàn nàn thường gặp nhất với mọi trình tạo số ngẫu nhiên từng được dựng lên, và gần như lần nào trình tạo cũng vô tội. Sự ngẫu nhiên thật hay dồn thành cụm. Nó không có ký ức, nên nó cũng không có lý do gì để tránh một giá trị mà nó vừa mới cho ra. Hãy tung xúc xắc sáu lần — cơ hội thấy đủ cả sáu mặt chỉ khoảng một phẩy năm phần trăm; kết cục gần như chắc chắn là có thứ lặp lại và có thứ thiếu mất.

Trực giác của con người chờ đợi một lớp rải đều và đọc sự dồn cụm thành hỏng hóc. Các sòng bạc đã kiếm tiền từ sự ngộ nhận đó từ rất lâu rồi. Nếu bạn cần mỗi giá trị xuất hiện đúng một lần, đó là một yêu cầu khác và nó có chế độ riêng: hãy chuyển sang “không trùng”, và trình tạo sẽ rút mà không trả lại, gỡ mỗi con số đã ra khỏi bể.

Đánh giá trình tạo này

★ ★ ★ ★ ★

Câu hỏi thường gặp

Randomizer khác trình tạo số ngẫu nhiên ở chỗ nào?

Chỉ khác ở cách người ta gọi. Randomizer là từ nói thường ngày cho bất cứ công cụ nào chọn một phương án mà không nhìn, còn trình tạo số ngẫu nhiên là một randomizer mà các phương án của nó là những số nguyên trong một khoảng. Khi thứ cần chọn là một cái tên chứ không phải một con số, hãy dùng randomizer quay thưởng: nó làm việc với danh sách người tham gia và trả về một liên kết bằng chứng.

Cái này ngẫu nhiên thật hay chỉ trông như ngẫu nhiên?

Con số được lấy từ bể entropy mật mã của hệ điều hành qua Web Crypto API — đúng cái nguồn dùng để tạo khóa mã hóa. Bể đó được nuôi bằng tiếng ồn vật lý như thời điểm các ngắt và tiếng ồn nhiệt của phần cứng, chứ không phải bằng một công thức. Ngoài ra chúng tôi còn dùng phép lấy mẫu có loại bỏ, nên việc chuyển sang khoảng số của bạn không thêm vào chút lệch nào.

Có ai đoán trước hay can thiệp được vào kết quả của tôi không?

Ở chế độ thường thì không. Lượt quay diễn ra trên thiết bị của bạn bằng entropy mà chúng tôi không hề thấy, và không có gì được truyền đi. Ở chế độ “lượt quay lặp lại được”, kết quả trở thành dựng lại được một cách có chủ ý — đó chính là mục đích — nên bất cứ ai biết cụm từ mã cũng tính ra đúng câu trả lời đó. Chỉ bật chế độ này khi bạn định công bố cụm từ.

Vì sao cùng một con số ra hai lần liền?

Vì sự ngẫu nhiên trông đúng như thế. Mỗi lượt rút là độc lập và không nhớ lượt trước, nên trùng lặp và thiếu hụt là điều nên chờ đợi chứ không phải điều đáng nghi. Nếu bạn cần mỗi giá trị xuất hiện đúng một lần, hãy chuyển sang chế độ không trùng, chế độ này rút mà không trả lại.

Khoảng số lớn nhất tôi dùng được là bao nhiêu?

Khoảng tới chín triệu tỉ về cả hai phía, và giới hạn âm cũng được. Xa hơn nữa thì các trình duyệt mất độ chính xác với số nguyên, nên chúng tôi giới hạn phần nhập vào, thay vì trả về một con số âm thầm sai.

Cái này miễn phí không, và tôi có phải đăng ký không?

Miễn phí, không có giới hạn và không cần tài khoản. Trang web sống bằng quảng cáo đặt tách ra khỏi công cụ. Không có gói trả phí, không có hình chìm, và chẳng có gì phải mở khóa.

Nó hoạt động khi không có internet không?

Có. Sau khi trang đã tải xong thì trình tạo không cần kết nối nữa, vì việc tính toán diễn ra tại chỗ. Hãy thêm trang vào màn hình chính — nó sẽ chạy được cả trên máy bay và cả dưới tầng hầm.

Các bạn có lưu những con số tôi tạo ra không?

Không. Không có gì được gửi lên máy chủ, nên cũng chẳng có gì để lưu. Thống kê của phiên và lịch sử các lượt quay nằm trong bộ lưu trữ cục bộ của trình duyệt bạn và bị xóa khi bạn xóa dữ liệu trang.

Tôi dùng cái này cho một lượt quay có phần thưởng thật được không?

Được, và cho trường hợp đó thì tốt hơn là dùng công cụ quay thưởng có bảo vệ chứ không phải trang này. Nó khóa danh sách người tham gia bằng một dấu vân tay trước khi quay và tạo ra một trang kiểm chứng để người xem tự xem.

Cái này khác gì trình tạo số ngẫu nhiên của Google?

Google hiện ngay trong trang kết quả một vòng quay đơn giản — hai giới hạn và một cái nút; đó chính là thứ người ta nghĩ tới khi tìm “google random số”. Để lấy một con số cho ván board game thì đủ, còn lại thì không. Ở đây có nhiều số cùng lúc, chế độ không trùng, chế độ toàn màn hình để cả phòng cùng xem, xuất file CSV, thống kê của phiên và liên kết bằng chứng cho lượt quay có phần thưởng.