Trình tạo số ngẫu nhiên
Tùy chọn
Đầu ra
Chi tiết kỹ thuật
Cách Trình tạo Số Ngẫu nhiên Hoạt động
Công cụ làm gì
Trình tạo Số Ngẫu nhiên tạo ra các số nguyên hoặc số dấu phẩy động ngẫu nhiên mạnh về mặt mật mã bằng Web Crypto API (crypto.getRandomValues). Công cụ sử dụng lấy mẫu loại bỏ (rejection sampling) để loại bỏ sai lệch modulo, đảm bảo phân phối đồng đều trên mọi khoảng được chỉ định. Bạn có thể tạo một giá trị đơn lẻ hoặc tạo theo lô các số ngẫu nhiên với thiết lập tối thiểu, tối đa và độ chính xác có thể cấu hình.
Các trường hợp sử dụng phổ biến cho lập trình viên
Lập trình viên dùng trình tạo số ngẫu nhiên mật mã cho các tác vụ nhạy cảm về bảo mật như tạo session token khó đoán, nonce, chọn số xổ số hoặc lấy mẫu ngẫu nhiên từ tập dữ liệu. Nhà phát triển game dùng nó cho việc gieo xúc xắc và tạo nội dung thủ tục khi tính công bằng quan trọng. Kỹ sư QA tạo đầu vào kiểm thử ngẫu nhiên cho fuzz testing, và nhà khoa học dữ liệu dùng nó để lấy mẫu ngẫu nhiên khi không yêu cầu khả năng tái lập.
Định dạng dữ liệu, kiểu hoặc biến thể
Công cụ hỗ trợ tạo số nguyên trong một khoảng tùy ý (bao gồm cả hai cận) và tạo số dấu phẩy động với độ chính xác thập phân có thể cấu hình. Lấy mẫu loại bỏ sẽ loại các giá trị có thể gây sai lệch modulo khi khoảng không chia hết không gian đầu ra của nguồn ngẫu nhiên. Entropy nền tảng đến từ CSPRNG của hệ điều hành (CryptGenRandom trên Windows, /dev/urandom trên Unix) được cung cấp thông qua Web Crypto API của trình duyệt.
Các lỗi thường gặp và trường hợp biên
Ngẫu nhiên mật mã chậm hơn Math.random() và không cần thiết cho các mục đích không liên quan bảo mật như xáo trộn danh sách phát. Lấy mẫu loại bỏ về mặt lý thuyết có thể lặp nhiều lần với các khoảng bệnh lý, dù trên thực tế điều này không đáng kể. Số ngẫu nhiên do trình duyệt tạo không thể đặt seed để tái lập — nếu bạn cần chuỗi xác định cho kiểm thử, hãy dùng PRNG có seed. Khoảng số nguyên an toàn tối đa bị giới hạn bởi Number.MAX_SAFE_INTEGER của JavaScript (2^53 - 1).
Khi nào nên dùng công cụ này thay vì viết mã
Dùng công cụ trên trình duyệt này khi bạn cần nhanh một số ngẫu nhiên không thiên lệch cho một quyết định một lần, kiểm thử thủ công hoặc xác minh rằng triển khai của bạn tạo ra giá trị trong các khoảng kỳ vọng. Với môi trường sản xuất, hãy gọi crypto.getRandomValues() trực tiếp trong mã của bạn hoặc dùng các hàm CSPRNG bản địa của ngôn ngữ (module secrets trong Python, SecureRandom trong Java) để tích hợp với xử lý lỗi và ghi log của ứng dụng.