কোথা থেকে শুরু করবেন
র্যান্ডম নম্বর জেনারেটর কী পড়ে দেখুন: হার্ডওয়্যার, ছদ্ম-র্যান্ডম এবং ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত জেনারেটর, কেন সংখ্যাগুলোর পুনরাবৃত্তি হয় এবং ব্রাউজার কী সুবিধা দেয়। ব্যাখ্যার চেয়ে যদি সংখ্যার বেশি প্রয়োজন হয়, তবে র্যান্ডম নম্বর জেনারেটর আপনার ব্রাউজারে যেকোনো পরিসরের মধ্যে, পুনরাবৃত্তি সহ বা পুনরাবৃত্তি ছাড়াই তা নির্বাচন করে দেয়।
জেনারেটরগুলি অজান্তেই যেখানে ভুল করে
র্যান্ডম সংখ্যার একটি শক্তিশালী উৎস পাওয়া কাজের কেবল অর্ধেক। বাকি অর্ধেক কাজ হলো এর অপরিশোধিত মানগুলিকে আপনার নির্দিষ্ট পরিসরে রূপান্তর করা, এবং এখানেই অনেক স্বনির্মিত জেনারেটর ব্যর্থ হয়। মানটিকে পরিসরের আকার দিয়ে মডিউলো করা আপাতদৃষ্টিতে সহজ মনে হয়, কিন্তু এতে সূক্ষ্ম পক্ষপাতিত্ব থাকে: যদি না পরিসরের আকার উৎসের ফলাফলের ক্ষেত্রকে সমানভাবে ভাগ করে, তবে পরিসরের সর্বনিম্ন সংখ্যাগুলি অন্যগুলোর তুলনায় কিছুটা বেশি ঘন ঘন আসে। এই ত্রুটিটিকে মডিউলো পক্ষপাত (modulo bias) বলা হয়। এর একটি সমাধান হলো রিজেকশন স্যাম্পলিং (rejection sampling): অসম লেজের অংশে পড়া মানগুলি বাতিল করে পুনরায় মান নেওয়া। আমাদের জেনারেটর এটিই করে, যাতে আপনার পরিসরের প্রতিটি সংখ্যা প্রতিবার নির্বাচনে সমান সুযোগ পায়।
একই যুক্তি সেই শর্টকাটগুলিকেও বাদ দেয় যা মানুষ প্রথমে বেছে নেয়। Math.random() নিরাপত্তার কোনো নিশ্চয়তা দেয় না, এবং স্প্রেডশিটের ফাংশন যেমন RAND() এবং RANDBETWEEN() একই গোত্রের অন্তর্ভুক্ত: এগুলো কেবল একটি প্রাথমিক বা খসড়া রদবদলের জন্য ঠিক আছে, কিন্তু এমন কোনো কাজের জন্য নয় যা কেউ চ্যালেঞ্জ করতে পারে।
সংখ্যা, তালিকা এবং ছক্কা
একটি র্যান্ডম নম্বর জেনারেটর আপনার নির্ধারিত পরিসর থেকে সংখ্যা প্রদান করে। একটি র্যান্ডম পিকার আপনার পেস্ট করা তালিকার উপর কাজ করে — নাম, এন্ট্রি, বিকল্প — ফলে আপনাকে কখনোই হাত দিয়ে সারির সাথে সংখ্যা মেলাতে হয় না। বোর্ড গেমের জন্য ছক্কা ফেলা ছক্কার দান ফেলে মোট সংখ্যা যোগ করে দেয়, আর দুইটির মধ্যে পছন্দের জন্য একটি কয়েন টস যথেষ্ট। র্যান্ডম প্রক্রিয়া যখন কোনো সিদ্ধান্ত নেওয়ার পরিবর্তে কোনো কিছু সুরক্ষিত করার উদ্দেশ্যে ব্যবহৃত হয়, তখন শক্তিশালী পাসওয়ার্ড জেনারেটর ব্যবহার করুন। এই সবগুলি টুলই আপনার ব্রাউজারের একই ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত উৎস থেকে কাজ করে।