Chuyển đến nội dung chính

Tạo Số Ngẫu Nhiên miễn phí

Tạo số ngẫu nhiên trong bất kỳ phạm vi nào, tạo danh sách số độc nhất hoặc tung xúc xắc. Sử dụng tính ngẫu nhiên bảo mật mật mã.

Hoạt động ngoại tuyến sau khi tải

🔒 Mỗi số dùng tính ngẫu nhiên bảo mật mật mã của trình duyệt (crypto.getRandomValues) — thực sự công bằng, không phải Math.random() có thể đoán được. Không có gì được gửi đi. Dù vậy, đừng dùng những số này để tạo khóa mật mã, token bảo mật hoặc ứng dụng xổ số/cờ bạc được kiểm soát, vốn yêu cầu nguồn ngẫu nhiên được kiểm định và chứng nhận phần cứng.

Cần chọn người thắng theo tên từ một danh sách, hoặc tung đồng xu? Hãy dùng công cụ Tung đồng xu, Vòng quay và Chọn từ danh sách →

Công dụng phổ biến

  • Tạo Số Xổ SốChọn các số xổ số ngẫu nhiên cho Powerball, Mega Millions, EuroMillions và các bài vẽ khác.
  • Chọn Người Chiến Thắng Ngẫu Nhiên cho Chiến Dịch Tặng QuàCông bằng chọn một người thắng cuộc ngẫu nhiên từ danh sách mục đã đánh số cho các cuộc thi và chiến dịch quà tặng.
  • Lăn Xúc Xắc cho Trò Chơi BànLăn bất kỳ tổ hợp xúc xắc nào - d4, d6, d8, d10, d12, d20, d100 - cho D&D và các trò chơi nhập vai bàn.
  • Lấy Mẫu Ngẫu Nhiên cho Nghiên CứuTạo các mẫu ngẫu nhiên, gán ID ngẫu nhiên hoặc chọn một tập hợp con ngẫu nhiên từ tập dữ liệu được đánh số.
  • Tạo Số Ngẫu Nhiên Dữ Liệu Thử NghiệmTạo danh sách lớn các số ngẫu nhiên để kiểm tra thuật toán, điền vào cơ sở dữ liệu và kiểm tra căng thẳng hệ thống.

Cách hoạt động

Mọi con số công cụ này tạo ra đều đến từ crypto.getRandomValues — nguồn ngẫu nhiên an toàn mật mã của trình duyệt, cùng nguồn dùng để tạo khóa TLS. Một thuật toán lấy mẫu loại bỏ tự viết được đặt lên trên để loại bỏ thiên lệch modulo vốn gây khó cho các cách cài đặt Math.random() % range đơn giản, kể cả khoảng rộng hơn 2^32 nhờ phép tính BigInt.

  1. 1
    Đặt khoảng và chế độ
    Chọn giữa một số, danh sách hàng loạt (tối đa 1000) hoặc xúc xắc đa diện (d4 đến d100). Với danh sách, bạn cũng có thể yêu cầu giá trị không trùng lặp và tùy chọn sắp xếp đầu ra tăng dần.
  2. 2
    crypto.getRandomValues lấy entropy thô
    Mỗi số được lấy từ Uint32Array (hoặc BigUint64Array cho khoảng rộng hơn 2^32) do bộ sinh số ngẫu nhiên mật mã của trình duyệt điền — không phải Math.random(). Lấy mẫu loại bỏ sau đó bỏ những giá trị làm lệch phân bố, nên mọi số nguyên trong khoảng đều có xác suất bằng nhau chính xác.
  3. 3
    Chế độ không trùng lặp dùng Fisher-Yates hoặc theo dõi loại bỏ
    Khi bật chế độ không trùng lặp và khoảng vừa trong bộ nhớ (tối đa 100.000 giá trị), công cụ tạo toàn bộ tập và xáo trộn bằng Fisher-Yates. Với khoảng rất lớn, nó lấy từng giá trị một, bỏ qua giá trị lặp — tránh chi phí bộ nhớ khi tạo mảng hàng tỷ phần tử.
  4. 4
    Kết quả xuất hiện với hiệu ứng động và được lưu trong lịch sử phiên
    Các giá trị cuối cùng chuyển động vào vị trí (quay kiểu máy đánh bạc cho số, xúc xắc lăn cho chế độ xúc xắc) bằng requestAnimationFrame, rồi xuất hiện trong nhật ký lịch sử có thể cuộn mà bạn sao chép bất cứ lúc nào. Không có gì rời khỏi trình duyệt.

Công cụ liên quan

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