Tính ngẫu nhiên đến từ đâu
Mỗi ký tự đều lấy từ crypto.getRandomValues, bộ sinh ngẫu nhiên mật mã của chính trình duyệt. Math.random nhanh và ổn để xáo một danh sách; nhưng không ổn cho thứ mà ai đó có thể đoán.
Việc bốc dùng lấy mẫu loại bỏ chứ không gập bằng phép chia dư, nên không ký tự nào trong tập có xác suất nhỉnh hơn ký tự khác.