किसी भी दायरे में यादृच्छिक संख्याएँ निकालें, दोहराव के साथ या बिना — आपके ब्राउज़र में ही।
रैंडम नंबर जेनरेटर सबसे सरल निष्पक्ष सवाल का जवाब देता है: इस दायरे में से एक संख्या चुनो, बिना किसी पक्षपात के। यह टूल आपके लिखे किसी भी न्यूनतम और अधिकतम के बीच पूर्ण संख्याएँ निकालता है, एक बार में एक या एक साथ एक हज़ार तक, और आपको तय करने देता है कि वही संख्या दोबारा आ सकती है या नहीं। दोहराव बंद कर दें और यह लॉटरी मशीन बन जाता है: 2,000 में से 5 विजेता टिकट नंबर निकालें, या 75 में से 15 बिंगो नंबर, और कोई संख्या दो बार नहीं निकल सकती।
यादृच्छिकता crypto.getRandomValues से आती है, जो ब्राउज़र का क्रिप्टोग्राफ़िक जेनरेटर है, Math.random से नहीं। यह rejection sampling भी इस्तेमाल करता है, जो सुनने में जितना लगता है उससे ज़्यादा मायने रखता है। किसी 32-बिट यादृच्छिक मान को किसी दायरे में ठूँसने का भोला तरीक़ा है दायरे के आकार से भाग देकर शेषफल लेना, पर यह चुपचाप शुरुआती संख्याओं का पक्ष लेता है: 2^32 ज़्यादातर दायरों का गुणज नहीं होता, इसलिए बचे हुए मान सबसे नीचे के परिणामों पर जमा हो जाते हैं। टूल इसके बजाय उस असमान पूँछ में गिरने वाले हर मान को फेंक देता है और दोबारा निकालता है, ताकि दायरे की हर संख्या की संभावना बिल्कुल बराबर रहे। दोहराव बंद होने पर यह दायरे पर आंशिक Fisher-Yates शफ़ल लगाता है, जो एक ही संख्या दो बार निकाले बिना अलग-अलग परिणामों की गारंटी देता है।
आम उपयोग लॉटरी से कहीं आगे जाते हैं: यह तय करना कि कौन-सी टीम पहले प्रस्तुत करे, जाँच के लिए स्प्रेडशीट की कोई यादृच्छिक पंक्ति चुनना, तय दायरे में परीक्षण डेटा बनाना, कक्षा में कोई गतिविधि चलाना, ऐसा टाईब्रेक तय करना जिस पर कोई विवाद न कर सके, या मनचाही संख्या में फलकों वाले पासे और सिक्के का सिमुलेशन करना। आप जो कुछ लिखते हैं वह कहीं नहीं भेजा जाता — पूरा ड्रॉ आपके डिवाइस पर JavaScript में होता है, जिसका मतलब यह भी है कि पेज एक बार लोड हो जाने पर टूल ऑफ़लाइन भी काम करता है।
[min, max] में एकसमान पूर्णांक: crypto.getRandomValues से 32-बिट मान लें, अगर वह उस सबसे बड़े गुणज से ऊपर गिरता है जो दायरे के आकार का 2^32 में समा सके तो उसे फेंक दें (rejection sampling, जो modulo पक्षपात हटाता है), फिर दायरे के आकार से भाग का शेषफल लें और न्यूनतम जोड़ दें। बिना दोहराव वाले ड्रॉ के लिए दायरे पर आंशिक Fisher-Yates शफ़ल लगाएँ और पहली N जगहें लें।
हाँ, उतनी ही जितनी कोई ब्राउज़र बना सकता है। टूल crypto.getRandomValues, यानी क्रिप्टोग्राफ़िक जेनरेटर, को rejection sampling के साथ इस्तेमाल करता है ताकि दायरे की किसी भी संख्या को दूसरी पर तरजीह न मिले।
क्योंकि इससे ड्रॉ में पक्षपात आ जाता है। अगर दायरा जेनरेटर के आउटपुट को बराबर-बराबर नहीं बाँटता, तो सबसे नीचे की संख्याओं को थोड़ी ज़्यादा संभावना मिल जाती है। Rejection sampling उस असमान पूँछ को फेंककर दोबारा ड्रॉ करता है, जिससे पक्षपात पूरी तरह हट जाता है।
सिर्फ़ तब जब आप "दोहराई गई संख्याएँ नहीं" पर निशान न लगाएँ। विकल्प चालू होने पर हर निकाली गई संख्या अलग होती है, और लॉटरी, बिंगो और विजेता चुनने के लिए यही चाहिए।
प्रति ड्रॉ 1,000 तक, और दायरा आपके ब्राउज़र की सँभाल सकने वाली किसी भी पूर्ण संख्या तक फैल सकता है। बिना दोहराव के आप ज़ाहिर है दायरे में मौजूद संख्याओं से ज़्यादा नहीं निकाल सकते।
नहीं। ड्रॉ 100% आपके डिवाइस पर JavaScript में चलता है। न कोई दायरा, न कोई परिणाम, न कोई ड्रॉ कहीं भेजा, लॉग या संग्रहीत किया जाता है।
Vai.la किसी भी URL को क्लिक आंकड़ों, QR Code और आपके अपने बायोलिंक के साथ एक शॉर्ट लिंक में बदल देता है।
टूल्स का इस्तेमाल कैसे होता है या उनके परिणामों के आधार पर लिए गए निर्णयों के लिए Vai.la ज़िम्मेदार नहीं है।