საიდან დავიწყოთ
წაიკითხეთ რა არის შემთხვევითი რიცხვების გენერატორი?: აპარატურული, ფსევდოშემთხვევითი და კრიპტოგრაფიულად უსაფრთხო გენერატორები, რატომ მეორდება რიცხვები და რას გვთავაზობს ბრაუზერი. როდესაც ახსნის ნაცვლად თავად რიცხვები გჭირდებათ, შემთხვევითი რიცხვების გენერატორი მათ პირდაპირ თქვენს ბრაუზერში ნებისმიერ დიაპაზონში გამოიმუშავებს, გამეორებით ან მის გარეშე.
სად ცდებიან გენერატორები შეუმჩნევლად
შემთხვევითობის ძლიერი წყარო საქმის მხოლოდ ნახევარია. მეორე ნახევარი ნედლი მნიშვნელობების თქვენს დიაპაზონზე ასახვაა, და სწორედ აქ მარცხდება ბევრი თვითნაკეთი გენერატორი. დიაპაზონის ზომაზე ნაშთის აღება (მოდულო) აშკარა მიდგომაა, თუმცა ის შეუმჩნეველ გადახრას იწვევს: თუ დიაპაზონის ზომა წყაროს მნიშვნელობათა სივრცეს ზუსტად არ ყოფს, დიაპაზონის ყველაზე დაბალი რიცხვები ოდნავ უფრო ხშირად ამოვა, ვიდრე დანარჩენები. ამ დეფექტს ეწოდება გადახრა ნაშთის აღებისას (modulo bias). ერთ-ერთი გამოსავალია უარყოფით შერჩევა (rejection sampling): იმ მნიშვნელობების გადაყრა, რომლებიც არათანაბარ ნაშთში ხვდება, და თავიდან არჩევა. ჩვენი გენერატორი სწორედ ასე მუშაობს, ამიტომ თქვენს დიაპაზონში ყველა რიცხვს ყოველ ჯერზე თანაბარი შანსი აქვს.
იგივე ლოგიკა გამორიცხავს მარტივ ხერხებს, რომლებსაც ადამიანები ხშირად მიმართავენ. Math.random() უსაფრთხოების არანაირ გარანტიას არ იძლევა, ხოლო ცხრილების ისეთი ფუნქციები, როგორიცაა RAND() და RANDBETWEEN(), იმავე კატეგორიას განეკუთვნება: გამოდგება ზერელე არევისთვის, მაგრამ მიუღებელია ნებისმიერი საქმისთვის, სადაც შედეგი შეიძლება ვინმემ გაასაჩივროს.
რიცხვები, სიები და კამათლები
შემთხვევითი რიცხვების გენერატორი აბრუნებს რიცხვებს თქვენ მიერ მითითებული დიაპაზონიდან. შემთხვევითი არჩევა სიიდან მუშაობს თქვენ მიერ ჩასმულ სიაზე — სახელებზე, მონაწილეებზე, ვარიანტებზე — ასე რომ არასოდეს მოგიწევთ რიცხვების სტრიქონებთან ხელით შედარება. სამაგიდო თამაშებისთვის კამათლის გენერატორი აგორებს კამათლებს და აჯამებს ქულებს, ხოლო ორ ვარიანტს შორის ასარჩევად მონეტის აგდება სრულიად საკმარისია. როდესაც შემთხვევითობამ რაიმეს გადაწყვეტის ნაცვლად რამე უნდა დაიცვას, გამოიყენეთ ძლიერი პაროლების გენერატორი. ყველა მათგანი თქვენს ბრაუზერში არსებულ ერთსა და იმავე კრიპტოგრაფიულად უსაფრთხო წყაროს იყენებს.