1. Tầm quan trọng của số ngẫu nhiên và CSPRNG
Số ngẫu nhiên là các giá trị không thể đoán trước, thiết yếu cho mã hóa, bảo mật, trò chơi và mô phỏng. Các bộ sinh ngẫu nhiên tiêu chuẩn tạo ra số giả ngẫu nhiên bằng thuật toán, nên có thể bị đoán nếu biết giá trị hạt giống. Với các ứng dụng yêu cầu bảo mật, hãy dùng CSPRNG (Cryptographically Secure Pseudo-Random Number Generator). Hàm random_bytes() và random_int() của PHP là CSPRNG, sử dụng /dev/urandom hoặc CryptGenRandom. JavaScript cung cấp crypto.getRandomValues() tận dụng các nguồn entropy của trình duyệt. Math.random() thông thường không phù hợp cho mục đích bảo mật và tuyệt đối không nên dùng cho token, session ID hoặc khóa mã hóa.