आप साइट पर पाइल या फेस शुरू करते हैं। आप सिक्के को घूमते, उतरते, पाइल दिखाते देखते हैं। लेकिन आपके क्लिक और उस परिणाम के बीच वास्तव में क्या हुआ? और सबसे महत्वपूर्ण: आपको एक विश्वसनीय ऑनलाइन रैंडम ड्रॉ के लिए हम पर भरोसा क्यों करना चाहिए?
यह लेख ढक्कन खोलता है। दिखावे के लिए नहीं, और न ही विषय को शब्दजाल में डुबोने के लिए — बल्कि इसके विपरीत: ताकि पढ़ने के अंत में आप स्वयं सत्यापित कर सकें कि सब कुछ क्रम में है। पारदर्शिता एक नारा नहीं है; यह एक ठोस अभ्यास है। यहाँ बताया गया है कि हमारे ड्रॉ कैसे बनाए गए हैं, क्या उनकी निष्पक्षता की गारंटी देता है, और वे सरल चरण क्या हैं जो आपको डेवलपर हुए बिना यह जाँचने देते हैं।
कंप्यूटर “लॉटरी” कैसे करता है
ईमानदारी की पहली बात: एक कंप्यूटर शुद्ध यादृच्छिकता उत्पन्न नहीं कर सकता। वह गणितीय यादृच्छिकता उत्पन्न करता है। अंतर सूक्ष्म है, लेकिन वह मायने रखता है।
जब आप एक असली सिक्का उछालते हैं, परिणाम हज़ार अप्रत्याशित कारकों पर निर्भर करता है: आपके अंगूठे की शक्ति, हवा का प्रतिरोध, सिक्के की अनियमितता, वह फ़र्श जिस पर वह गिरता है। जब आप हमारे बटन पर क्लिक करते हैं, तो कंप्यूटर इसके बजाय एक गणितीय गणना करता है जिसे इतनी अनियमित अंक श्रृंखलाएँ उत्पन्न करने के लिए डिज़ाइन किया गया है कि व्यवहार में उन्हें भविष्यवाणी नहीं किया जा सकता। इस गणना का एक नाम है: एक छद्म-यादृच्छिक संख्या जनरेटर।
ठोस रूप में, आपका ब्राउज़र (Chrome, Firefox, Safari, Edge) दो अलग उपकरण साथ लाता है:
Math.random()— सामान्य-उद्देश्य फ़ंक्शन। यह तेज़ है, समान रूप से वितरित है, और सिक्का उछालने, पासा फेंकने या सूची से एक नाम चुनने के लिए पर्याप्त से अधिक है। आधुनिक ब्राउज़र इसे xorshift128+ नामक एल्गोरिथम के साथ लागू करते हैं, जो ऐसी श्रृंखलाएँ उत्पन्न करता है जिन्हें नंगी आँख से असली यादृच्छिकता से अलग करना असंभव है।crypto.getRandomValues()— क्रिप्टोग्राफ़िक संस्करण। धीमा, लेकिन एक हमलावर के लिए भी अप्रत्याशित जो हज़ारों पिछले परिणामों को देख रहा हो। यह पासवर्ड या सुरक्षा कुंजियाँ उत्पन्न करने के लिए मानक उपकरण है।
TirageAuSort.io पर, हम पहले का उपयोग खेलों के विशाल बहुमत के लिए करते हैं (पाइल या फेस, आभासी पासे, भाग्य चक्र, कार्ड ड्रॉ) और दूसरे का उपयोग संवेदनशील उपकरणों के लिए करते हैं: पासवर्ड जनरेटर, यादृच्छिक रंग, यादृच्छिक तिथि। सही जगह पर सही उपकरण। यह एक सोची-समझी तकनीकी निर्णय है, कोई डिफ़ॉल्ट विकल्प नहीं।
निष्पक्षता की चार गारंटियाँ
सही जनरेटर चुनना पर्याप्त नहीं है। यदि उसके चारों ओर कोड खराब लिखा है तो ड्रॉ फिर भी पक्षपाती रह सकता है। साइट के हर खेल को चार नियम घेरते हैं।
एक समान वितरण
पाइल या फेस पर, पाइल को 50 % समय गिरना चाहिए और फेस 50 % — 49/51 नहीं। 1 और 100 के बीच नंबर जनरेटर पर, हर पूर्णांक की ठीक 1 % संभावना होनी चाहिए। यह स्पष्ट लगता है, लेकिन एक क्लासिक गलती जनरेटर के कच्चे आउटपुट पर मोड्यूलो ऑपरेटर (एक भाग का शेष) का उपयोग करना है, जो कुछ श्रेणियों पर एक छोटा लेकिन वास्तविक पूर्वाग्रह उत्पन्न करता है। हम इस जाल से आधिकारिक वेब प्रलेखन द्वारा अनुशंसित मानक विधि से बचते हैं: परिणाम को ऊपरी सीमा से गुणा करें और नीचे की ओर पूर्णांकित करें। परिणाम: 10,000 ड्रॉ में, मूल्यों के बीच का अंतर सांख्यिकीय रूप से नगण्य रहता है।
ड्रॉ के बीच कोई स्मृति नहीं
हर क्लिक एक स्वतंत्र घटना है। साइट आपके पिछले परिणामों को बाद वालों को “संतुलित” करने के लिए याद नहीं रखती — यह बिल्कुल कोड पर लागू जुआरी की भ्रांति होगी, और हम इसे एक पूरा लेख समर्पित करते हैं। यदि आप एक के बाद एक सात पाइल निकालते हैं, तो आठवें ड्रॉ की अब भी 50 % संभावना है पाइल होने की। यह अंतर्ज्ञान के लिए असुविधाजनक है, लेकिन यह बिल्कुल वही है जो हमारा कोड कठोरता से उत्पन्न करता है।
सब कुछ आपके ब्राउज़र में होता है
यह शायद सबसे महत्वपूर्ण बिंदु है। TirageAuSort.io एक स्थैतिक साइट है: कोई सर्वर नहीं है जो आपके परिणाम पर “निर्णय” लेता हो। जब आप क्लिक करते हैं, तो गणना आपकी अपनी मशीन पर चलती है, उस JavaScript कोड में जिसे आपने पृष्ठ पर पहुँचने पर डाउनलोड किया था। यह किसी भी सर्वर-साइड हेरफेर को तकनीकी रूप से असंभव बनाता है — कोई सर्वर ही नहीं है। यह कोड को देखने योग्य भी बनाता है, जो हमें अगले बिंदु पर लाता है।
सही उपयोग के लिए सही उपकरण
पासवर्ड का उदाहरण फिर लें। यदि हमने 16-वर्ण कुंजी उत्पन्न करने के लिए Math.random() का उपयोग किया होता, तो साइट को एक ही मिलीसेकंड में देखने वाले दो लोग, सैद्धांतिक रूप से, आंशिक रूप से अनुमानित पासवर्ड के साथ समाप्त हो सकते थे। crypto.getRandomValues() के साथ यह जोखिम गायब हो जाता है: जनरेटर सीधे ऑपरेटिंग सिस्टम के एन्ट्रॉपी स्रोतों (माउस की गति, कीस्ट्रोक, नेटवर्क घटनाएँ) से ईंधन लेता है, जो NIST की सुरक्षा सिफ़ारिशों के अनुरूप है। जहाँ यादृच्छिकता की गुणवत्ता के परिणाम होते हैं, वहाँ हम एक स्तर ऊपर जाते हैं।
स्वयं कैसे सत्यापित करें
यहाँ वह हिस्सा है जो इस लेख को अलग बनाता है: आपको हमारी बात मानने की ज़रूरत नहीं है।
परीक्षण #1 — कोड पढ़ें। साइट के किसी भी पृष्ठ पर F12 कुंजी दबाएँ। एक खिड़की खुलती है: ये डेवलपर टूल्स हैं, जो वर्षों से आपके ब्राउज़र में अंतर्निहित हैं। “स्रोत” या “डीबगर” टैब खोजें। वहाँ आपको पृष्ठ पर निष्पादित JavaScript सादे पाठ में मिलेगा। Math.random या crypto.getRandomValues खोजें: आप वस्तुतः उस पंक्ति को पढ़ेंगे जो आपका परिणाम उत्पन्न करती है। कोई अस्पष्टीकरण नहीं, कोई छिपी हुई तृतीय-पक्ष सेवा कॉल नहीं।
परीक्षण #2 — वितरण। लगातार सौ बार पाइल या फेस चलाएँ। परिणाम नोट करें। आप 50/50 के आसपास पहुँचने चाहिए, दस के आसपास संभावित अंतर के साथ। यदि आप अधिक कठोर होना चाहते हैं, ब्राउज़र कंसोल खोलें (अब भी F12, “कंसोल” टैब के माध्यम से) और टाइप करें: let p = 0; for (let i = 0; i < 10000; i++) if (Math.random() < 0.5) p++; p — आप 4,900 और 5,100 के बीच एक संख्या देखेंगे। यह गणितीय यादृच्छिकता है, बिना नाटक के।
परीक्षण #3 — सुसंगति। साइट एक स्वतंत्र फ्रांसीसी-भाषी परियोजना है, जिसके पास कोई निवेशक या विज्ञापन नेटवर्क नहीं है जिनका ड्रॉ को विकृत करने में हित होता। एकमात्र संपत्ति जो हम सुरक्षित रखते हैं वह वह विश्वास है जो आप एक वास्तविक निर्णय का निपटारा करने के लिए उपयोग किए जाने वाले उपकरण को देते हैं। धोखाधड़ी आर्थिक रूप से बेतुकी, तकनीकी रूप से पता लगाने योग्य और परियोजना के भविष्य के लिए नैतिक रूप से अयोग्य ठहराने वाली होगी।
यादृच्छिकता एक घटिया मार्केटिंग पिच है
बहुत सी साइटें “प्रमाणित ड्रॉ” की बात करती हैं बिना यह बताए कि किसके द्वारा या किस पद्धति से। हमारा दृष्टिकोण विपरीत है: कोई लेबल नहीं, कोई अस्पष्ट वादा नहीं — बस दो मानकीकृत वेब फ़ंक्शन, सही ढंग से उपयोग किए गए, स्थानीय रूप से निष्पादित किए गए, और किसी के लिए भी पठनीय जो डेवलपर टूल्स खोलता है। यदि कल कोई हमारे कोड में कोई त्रुटि पहचानता है, तो वह निर्माण द्वारा सार्वजनिक होगी और ठीक की जाएगी। यह एक विश्वसनीय ऑनलाइन रैंडम ड्रॉ की व्यावहारिक परिभाषा है: एक मार्केटिंग तर्क नहीं, बल्कि एक तकनीकी अनुबंध जिसका आप ऑडिट कर सकते हैं।
अधिक जानकारी के लिए मुफ़्त कैसीनो सिमुलेशन की सीमाओं, समस्याग्रस्त जुए के संकेतों और सिक्का उछाल की वास्तविक संभावनाओं पर हमारे लेख पढ़ें। इंजन की पारदर्शिता पहला कदम है।