छद्म यादृच्छिक संख्या जनरेटर

एक छद्म यादृच्छिक संख्या जनरेटर (PRNG), जिसे नियतात्मक यादृच्छिक बिट जनरेटर (DRBG) के रूप में भी जाना जाता है, संख्याओं का अनुक्रम उत्पन्न करने के लिए एक कलन विधि है जिसका गुण यादृच्छिक संख्या पीढ़ी के अनुक्रमों के गुणों का अनुमान लगाता है। पीआरएनजी-जनित अनुक्रम वास्तव में यादृच्छिक नहीं है, क्योंकि यह पूरी तरह से एक प्रारंभिक मूल्य द्वारा निर्धारित होता है, जिसे पीआरएनजी के यादृच्छिक बीज कहा जाता है (जिसमें वास्तव में यादृच्छिक मान शामिल हो सकते हैं)। यद्यपि अनुक्रम जो वास्तव में यादृच्छिक के करीब हैं, हार्डवेयर यादृच्छिक संख्या जनरेटर का उपयोग करके उत्पन्न किए जा सकते हैं, 'छद्म यादृच्छिक संख्या जनरेटर' संख्या पीढ़ी में उनकी गति और उनकी पुनरुत्पादन के लिए अभ्यास में महत्वपूर्ण हैं। पीआरएनजी सिमुलेशन (उदाहरण के लिए मोंटे कार्लो विधि के लिए), इलेक्ट्रॉनिक खेल  (उदाहरण के लिए प्रक्रियात्मक पीढ़ी के लिए), और क्रिप्टोग्राफी जैसे अनुप्रयोगों में केंद्रीय हैं। क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए आवश्यक है कि आउटपुट पहले के आउटपुट से अनुमानित न हो, और अधिक क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर, जो सरल PRNGs की रैखिकता को इनहेरिट नहीं करता है, की आवश्यकता है।

पीआरएनजी के आउटपुट के लिए अच्छी सांख्यिकीय गुण एक केंद्रीय आवश्यकता है। सामान्य तौर पर, सावधान गणितीय विश्लेषण के लिए किसी भी विश्वास की आवश्यकता होती है कि PRNG ऐसी संख्याएँ उत्पन्न करता है जो इच्छित उपयोग के अनुरूप यादृच्छिक रूप से पर्याप्त रूप से करीब हैं। जॉन वॉन न्यूमैन ने वास्तव में यादृच्छिक जनरेटर के रूप में PRNG की गलत व्याख्या के बारे में चेतावनी दी, मजाक में कहा कि जो कोई भी यादृच्छिक अंकों के उत्पादन के अंकगणितीय तरीकों पर विचार करता है, निश्चित रूप से पाप की स्थिति में है।

संभावित मुद्दे
व्यवहार में, कई सामान्य पीआरएनजी से आउटपुट विरूपण साक्ष्य (त्रुटि)त्रुटि) प्रदर्शित करता है जो उन्हें सांख्यिकीय पैटर्न-डिटेक्शन परीक्षणों में असफल होने का कारण बनता है। इसमे शामिल है:


 * कुछ बीज अवस्थाओं के लिए अपेक्षा से कम अवधि (ऐसे बीज राज्यों को इस संदर्भ में कमजोर कहा जा सकता है);
 * उत्पन्न संख्या की बड़ी मात्रा के लिए वितरण की एकरूपता का अभाव;
 * क्रमिक मूल्यों का सहसंबंध;
 * आउटपुट अनुक्रम का खराब आयामी वितरण;
 * जहाँ कुछ मान होते हैं, उनके बीच की दूरियाँ यादृच्छिक अनुक्रम वितरण से भिन्न रूप से वितरित की जाती हैं।

त्रुटिपूर्ण PRNGs द्वारा प्रदर्शित दोष अगोचर (और अज्ञात) से लेकर बहुत स्पष्ट तक होते हैं। एक उदाहरण RANDU यादृच्छिक संख्या एल्गोरिथम था जिसका उपयोग दशकों से मेनफ़्रेम कंप्यूटर ों पर किया जाता था। यह गंभीर रूप से त्रुटिपूर्ण था, लेकिन इसकी अपर्याप्तता बहुत लंबे समय तक नहीं चल पाई।

कई क्षेत्रों में, 21वीं सदी से पहले के अनुसंधान कार्य जो यादृच्छिक चयन या मोंटे कार्लो विधि  सिमुलेशन पर निर्भर थे, या अन्य तरीकों से पीआरएनजी पर निर्भर थे, खराब गुणवत्ता वाले पीआरएनजी का उपयोग करने के परिणामस्वरूप आदर्श से बहुत कम विश्वसनीय थे। आज भी, कभी-कभी सावधानी बरतने की आवश्यकता होती है, जैसा कि सांख्यिकीय विज्ञान के अंतर्राष्ट्रीय विश्वकोश (2010) में निम्नलिखित चेतावनी द्वारा स्पष्ट किया गया है।

एक उदाहरण के रूप में, व्यापक रूप से प्रयुक्त प्रोग्रामिंग भाषा जावा (प्रोग्रामिंग भाषा) पर विचार करें। 2020 तक, जावा अभी भी अपने PRNG के लिए एक रेखीय सर्वांगसम जनरेटर (LCG) पर निर्भर था, जो निम्न गुणवत्ता का है (आगे नीचे देखें)। जावा समर्थन को जावा संस्करण इतिहास#Java 17 के साथ अपग्रेड किया गया था।

बड़ी समस्याओं से बचने और अभी भी काफी तेजी से चलने वाला एक प्रसिद्ध पीआरएनजी मेर्सन ट्विस्टर (नीचे चर्चा की गई) है, जिसे 1998 में प्रकाशित किया गया था। अन्य उच्च-गुणवत्ता वाले पीआरएनजी, कम्प्यूटेशनल और सांख्यिकीय प्रदर्शन के संदर्भ में, इसके पहले और बाद में विकसित किए गए थे। तारीख; इन्हें छद्म यादृच्छिक संख्या जेनरेटर की सूची में पहचाना जा सकता है।

रैखिक पुनरावृत्तियों पर आधारित जेनरेटर
20वीं शताब्दी के उत्तरार्ध में, PRNGs के लिए उपयोग किए जाने वाले एल्गोरिदम के मानक वर्ग में रैखिक सर्वांगसम जनरेटर शामिल थे। एलसीजी की गुणवत्ता अपर्याप्त होने के लिए जानी जाती थी, लेकिन बेहतर तरीके उपलब्ध नहीं थे। प्रेस एट अल। (2007) ने परिणाम का वर्णन इस प्रकार किया: यदि [LCGs और संबंधित] के कारण संदेह में आने वाले सभी वैज्ञानिक कागजात पुस्तकालय की अलमारियों से गायब हो जाते हैं, तो प्रत्येक शेल्फ पर आपकी मुट्ठी जितनी बड़ी जगह होगी। छद्म आयामी जनरेटर के निर्माण में एक प्रमुख प्रगति दो-तत्व क्षेत्र पर रैखिक पुनरावृत्ति के आधार पर तकनीकों का परिचय था; ऐसे जनरेटर लीनियर-फीडबैक शिफ्ट रजिस्टर से संबंधित हैं।

मेर्सन ट्विस्टर का 1997 का आविष्कार, विशेष रूप से, पहले के जनरेटर के साथ कई समस्याओं से बचा। मेर्सन ट्विस्टर की अवधि 2 है19 937 − 1 पुनरावृत्तियां (≈ 4.3), 623 आयामों (32-बिट मानों के लिए) में (अधिकतम) समान रूप से वितरित होना सिद्ध हुआ है, और इसकी शुरूआत के समय अन्य सांख्यिकीय रूप से उचित जनरेटर की तुलना में तेजी से चल रहा था।

2003 में, जॉर्ज मार्सग्लिया ने ए xorshift जेनरेटर के परिवार की शुरुआत की, फिर से एक रेखीय पुनरावृत्ति के आधार पर। इस तरह के जनरेटर बहुत तेज होते हैं और एक गैर-रैखिक ऑपरेशन के साथ संयुक्त होते हैं, वे मजबूत सांख्यिकीय परीक्षण पास करते हैं। 2006 में, जनरेटर के अच्छी तरह से वितरित लंबी अवधि के रैखिक परिवार को विकसित किया गया था। WELL जनरेटर कुछ मायनों में मेर्सेन ट्विस्टर की गुणवत्ता में सुधार करता है, जिसमें बहुत बड़ा राज्य स्थान होता है और बड़ी संख्या में शून्य के साथ राज्य के स्थानों से बहुत धीमी गति से रिकवरी होती है।

क्रिप्टोग्राफ़िक PRNGs
क्रिप्टोग्राफी अनुप्रयोगों के लिए उपयुक्त पीआरएनजी को क्रिप्टोग्राफिक रूप से सुरक्षित पीआरएनजी (सीएसपीआरएनजी) कहा जाता है। सीएसपीआरएनजी के लिए एक आवश्यकता यह है कि बीज को न जानने वाले एक विरोधी को यादृच्छिक अनुक्रम से जनरेटर के आउटपुट अनुक्रम को अलग करने में केवल नगण्य कार्य लाभ (क्रिप्टोग्राफी) होता है। दूसरे शब्दों में, जबकि एक PRNG को केवल कुछ सांख्यिकीय परीक्षणों को पास करने की आवश्यकता होती है, एक CSPRNG को सभी सांख्यिकीय परीक्षणों को पास करना होगा जो कि बीज के आकार में बहुपद समय तक सीमित हैं। हालांकि इस संपत्ति का एक प्रमाण कम्प्यूटेशनल जटिलता सिद्धांत की कला की वर्तमान स्थिति से परे है, एक गणितीय समस्या से CSPRNG में कमी (जटिलता) द्वारा मजबूत सबूत प्रदान किया जा सकता है जिसे कम्प्यूटेशनल कठोरता धारणा माना जाता है, जैसे कि पूर्णांक गुणनखंडन। सामान्य तौर पर, एल्गोरिथ्म को CSPRNG के रूप में प्रमाणित करने से पहले समीक्षा के वर्षों की आवश्यकता हो सकती है।

सीएसपीआरएनजी के कुछ वर्गों में निम्नलिखित शामिल हैं:


 * स्ट्रीम सिफर
 * ब्लॉक सिफर काउंटर मोड में चल रहा है या आउटपुट प्रतिक्रिया  मोड
 * PRNG जिन्हें विशेष रूप से क्रिप्टोग्राफ़िक रूप से सुरक्षित होने के लिए डिज़ाइन किया गया है, जैसे कि Microsoft का क्रिप्टोग्राफिक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस फ़ंक्शन CryptGenRandom, यारो एल्गोरिदम  (Mac OS X और FreeBSD में शामिल), और Fortuna (PRNG)
 * संयोजन PRNG जो किसी भी पता लगाने योग्य गैर-यादृच्छिकता को दूर करने के लक्ष्य के साथ कई PRNG आदिम एल्गोरिदम को संयोजित करने का प्रयास करता है
 * गणितीय कठोरता मान्यताओं के आधार पर विशेष डिजाइन: उदाहरणों में मिकाली-श्नोर जनरेटर शामिल हैं, नोर-रीनॉल्ड स्यूडोरैंडम फंक्शन|नॉर-रींगोल्ड स्यूडोरैंडम फंक्शन और ब्लम ब्लम शुब एल्गोरिदम, जो एक मजबूत सुरक्षा प्रमाण प्रदान करते हैं (ऐसे एल्गोरिदम पारंपरिक निर्माणों की तुलना में धीमे हैं, और कई अनुप्रयोगों के लिए अव्यावहारिक हैं)
 * सामान्य पीआरएनजी: जबकि यह दिखाया गया है कि एक (क्रिप्टोग्राफिक रूप से) सुरक्षित पीआरएनजी किसी भी एक तरफा कार्य से सामान्य रूप से बनाया जा सकता है, यह सामान्य निर्माण व्यवहार में बेहद धीमा है, इसलिए मुख्य रूप से सैद्धांतिक रुचि है।

यह संभावना दिखाई गई है कि राष्ट्रीय सुरक्षा एजेंसी ने एक असममित सम्मिलित किया है पिछले दरवाजे (कंप्यूटिंग) NIST-प्रमाणित छद्म यादृच्छिक संख्या जनरेटर Dual_EC_DRBG में। अधिकांश पीआरएनजी एल्गोरिदम अनुक्रम उत्पन्न करते हैं जो कई परीक्षणों में से किसी एक द्वारा समान वितरण (असतत) होते हैं। यह एक खुला प्रश्न है, और क्रिप्टोग्राफी के सिद्धांत और अभ्यास के लिए एक केंद्रीय है, क्या उच्च गुणवत्ता वाले पीआरएनजी के आउटपुट को वास्तव में यादृच्छिक अनुक्रम से अलग करने का कोई तरीका है। इस सेटिंग में, विभेदक जानता है कि या तो ज्ञात पीआरएनजी एल्गोरिदम का उपयोग किया गया था (लेकिन राज्य नहीं जिसके साथ इसे प्रारंभ किया गया था) या वास्तव में यादृच्छिक एल्गोरिदम का उपयोग किया गया था, और दोनों के बीच अंतर करना है। पीआरएनजी का उपयोग करने वाले अधिकांश क्रिप्टोग्राफ़िक एल्गोरिदम और प्रोटोकॉल की सुरक्षा इस धारणा पर आधारित है कि वास्तव में यादृच्छिक अनुक्रम के उपयोग से उपयुक्त पीआरएनजी के उपयोग को अलग करना संभव नहीं है। इस निर्भरता के सबसे सरल उदाहरण स्ट्रीम सिफर हैं, जो (अक्सर) पीआरएनजी के आउटपुट के साथ एक संदेश के सादे पाठ को एकमात्र आईएनजी द्वारा काम करते हैं, सिफरटेक्स्ट का उत्पादन करते हैं। क्रिप्टोग्राफ़िक रूप से पर्याप्त PRNGs का डिज़ाइन अत्यंत कठिन है क्योंकि उन्हें अतिरिक्त मानदंडों को पूरा करना होगा। पीआरएनजी की क्रिप्टोग्राफ़िक उपयुक्तता में इसकी अवधि का आकार एक महत्वपूर्ण कारक है, लेकिन केवल एक ही नहीं।

बीएसआई मूल्यांकन मानदंड
सूचना सुरक्षा के लिए जर्मन संघीय कार्यालय (Bundesamt für Sicherheit in der Informationstechnik, BSI) ने नियतात्मक यादृच्छिक संख्या जनरेटर की गुणवत्ता के लिए चार मापदंड स्थापित किए हैं। उनका सारांश यहां दिया गया है:


 * K1 - एक उच्च संभावना होनी चाहिए कि यादृच्छिक संख्याओं के उत्पन्न क्रम एक दूसरे से भिन्न हों।
 * K2 - निर्दिष्ट सांख्यिकीय परीक्षणों के अनुसार संख्याओं का एक क्रम वास्तव में यादृच्छिक संख्याओं से अप्रभेद्य है। परीक्षण हैं monobit  टेस्ट (अनुक्रम में एक और शून्य की समान संख्या), पोकर टेस्ट (ची-चुकता परीक्षण का एक विशेष उदाहरण), रन टेस्ट (विभिन्न लंबाई के रनों की आवृत्ति की गणना करता है), लॉन्ग्रन्स टेस्ट (जाँच करता है कि क्या अनुक्रम के 20 000 बिट्स में लंबाई 34 या उससे अधिक का कोई रन मौजूद है) - सूचना सुरक्षा के लिए संघीय कार्यालय से दोनों और एनआईएसटी, और स्वत: सहसंबंध परीक्षण। संक्षेप में, ये आवश्यकताएं इस बात का परीक्षण हैं कि कितना अच्छा अनुक्रम है: शून्य और समान रूप से अक्सर; एन शून्य (या एक) के अनुक्रम के बाद, अगला बिट एक (या शून्य) प्रायिकता के साथ एक-आधा; और किसी भी चयनित अनुक्रम में अनुक्रम में अगले तत्व(ओं) के बारे में कोई जानकारी नहीं है।
 * K3 - एक हमलावर के लिए (सभी व्यावहारिक उद्देश्यों के लिए) गणना करना, या अन्यथा अनुमान लगाना असंभव होना चाहिए, किसी दिए गए क्रम से, किसी भी पिछले या भविष्य के मूल्यों के क्रम में, और न ही जनरेटर की कोई आंतरिक स्थिति।
 * K4 - सभी व्यावहारिक उद्देश्यों के लिए, एक हमलावर के लिए जनरेटर की आंतरिक स्थिति से गणना करना या अनुमान लगाना असंभव होना चाहिए, अनुक्रम में किसी भी पिछली संख्या या किसी भी पिछले आंतरिक जनरेटर की स्थिति।

क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए, केवल K3 या K4 मानकों को पूरा करने वाले जनरेटर ही स्वीकार्य हैं।

गणितीय परिभाषा
दिया गया:


 * $$P$$ - एक संभाव्यता वितरण पर $$\left(\mathbb{R},\mathfrak{B}\right)$$ (कहाँ $$\mathfrak{B}$$ वास्तविक लाइन पर मानक बोरेल सेट है)
 * $$\mathfrak{F}$$ - बोरेल सेट का एक गैर-खाली संग्रह $$\mathfrak{F}\subseteq\mathfrak{B}$$, उदा. $$\mathfrak{F}=\left\{\left(-\infty,t\right] : t\in\mathbb{R}\right\}$$. अगर $$\mathfrak{F}$$ निर्दिष्ट नहीं है, यह या तो हो सकता है $$\mathfrak{B}$$ या $$\left\{\left(-\infty,t\right] : t\in\mathbb{R}\right\}$$, संदर्भ के आधार पर।
 * $$A\subseteq\mathbb{R}$$ – एक गैर-खाली सेट (जरूरी नहीं कि बोरेल सेट)। अक्सर $$A$$ के बीच एक सेट है $$P$$का समर्थन (गणित) और इसकी आंतरिक (टोपोलॉजी); उदाहरण के लिए, यदि $$P$$ अंतराल पर समान वितरण है $$\left(0,1\right]$$, $$A$$ हो सकता है $$\left(0,1\right]$$. अगर $$A$$ निर्दिष्ट नहीं है, इसे समर्थन में निहित कुछ सेट माना जाता है $$P$$ और संदर्भ के आधार पर इसके आंतरिक भाग को समाहित करता है।

हम एक समारोह कहते हैं $$f:\mathbb{N}_1\rightarrow\mathbb{R}$$ (कहाँ $$\mathbb{N}_1=\left\{1,2,3,\dots\right\}$$ सकारात्मक पूर्णांकों का समूह है) के लिए एक छद्म-यादृच्छिक संख्या जनरेटर $$P$$ दिया गया $$\mathfrak{F}$$ मान लेना $$A$$अगर और केवल अगर:

($$\#S$$ परिमित सेट में तत्वों की संख्या को दर्शाता है $$S$$.)
 * $$f\left(\mathbb{N}_1\right)\subseteq A$$
 * $$\forall E\in\mathfrak{F} \quad \forall \varepsilon>0 \quad \exists N\in\mathbb{N}_1 \quad \forall n\geq N, \quad \left|\frac{\#\left\{i\in\left\{1,2,\dots, n\right\} : f(i)\in E\right\}}{n}-P(E)\right|< \varepsilon$$

यह दिखाया जा सकता है कि अगर $$f$$ पर समान वितरण के लिए छद्म यादृच्छिक संख्या जनरेटर है $$\left(0,1\right)$$ और अगर $$F$$ कुछ दिए गए प्रायिकता बंटन का संचयी बंटन फलन है $$P$$, तब $$F^*\circ f$$ के लिए एक छद्म-यादृच्छिक संख्या जनरेटर है $$P$$, कहाँ $$F^*:\left(0,1\right)\rightarrow\mathbb{R}$$ का प्रतिशतक है $$P$$, अर्थात। $$F^*(x):=\inf\left\{t\in\mathbb{R} : x\leq F(t)\right\}$$. सहजता से, एक मनमाना वितरण मानक वर्दी वितरण के अनुकरण से अनुकरण किया जा सकता है।

शुरुआती दृष्टिकोण
1946 में जॉन वॉन न्यूमैन द्वारा सुझाए गए एक प्रारंभिक कंप्यूटर-आधारित PRNG को मध्य-वर्ग विधि के रूप में जाना जाता है। एल्गोरिथ्म इस प्रकार है: किसी भी संख्या को लें, इसे स्क्वायर करें, परिणामी संख्या के मध्य अंकों को यादृच्छिक संख्या के रूप में हटा दें, फिर उस संख्या को अगले पुनरावृत्ति के लिए बीज के रूप में उपयोग करें। उदाहरण के लिए, संख्या 1111 का वर्ग करने पर 1234321 प्राप्त होता है, जिसे 01234321 के रूप में लिखा जा सकता है, एक 8-अंकीय संख्या 4-अंकीय संख्या का वर्ग है। यह यादृच्छिक संख्या के रूप में 2343 देता है। इस प्रक्रिया को दोहराने से अगला परिणाम 4896 मिलता है, और इसी तरह आगे भी। वॉन न्यूमैन ने 10 अंकों की संख्या का इस्तेमाल किया, लेकिन प्रक्रिया वही थी।

मध्य वर्ग पद्धति के साथ एक समस्या यह है कि सभी क्रम अंततः खुद को दोहराते हैं, कुछ बहुत जल्दी, जैसे कि 0000। वॉन न्यूमैन इसके बारे में जानते थे, लेकिन उन्होंने अपने उद्देश्यों के लिए दृष्टिकोण को पर्याप्त पाया और चिंतित थे कि गणितीय सुधार त्रुटियों को दूर करने के बजाय उन्हें छिपा देंगे।

वॉन न्यूमैन ने हार्डवेयर यादृच्छिक संख्या जनरेटर को अनुपयुक्त माना, क्योंकि यदि वे उत्पन्न आउटपुट को रिकॉर्ड नहीं करते थे, तो उन्हें बाद में त्रुटियों के लिए परीक्षण नहीं किया जा सकता था। यदि वे अपना आउटपुट रिकॉर्ड करते हैं, तो वे उस समय उपलब्ध सीमित कंप्यूटर मेमोरी को समाप्त कर देंगे, और इसलिए कंप्यूटर की संख्याओं को पढ़ने और लिखने की क्षमता समाप्त हो जाएगी। यदि संख्याएँ कार्डों पर लिखी जातीं, तो उन्हें लिखने और पढ़ने में बहुत अधिक समय लगता। वह जिस ENIAC कंप्यूटर का उपयोग कर रहा था, उस पर मध्य वर्ग विधि ने छिद्रित कार्ड ों से संख्याओं को पढ़ने की तुलना में कुछ सौ गुना तेजी से संख्याएँ उत्पन्न कीं।

तब से मध्य-स्क्वायर विधि को अधिक विस्तृत जनरेटर द्वारा प्रतिस्थापित कर दिया गया है।

एक हालिया नवाचार मध्य वर्ग को वेइल अनुक्रम के साथ जोड़ना है। यह विधि एक लंबी अवधि के माध्यम से उच्च गुणवत्ता वाले उत्पादन का उत्पादन करती है (मध्य-वर्ग विधि देखें).

गैर-समान जनरेटर
एक समान वितरण (निरंतर) PRNG और दो वितरणों से संबंधित एक फ़ंक्शन का उपयोग करके एक गैर-समान संभाव्यता वितरण से चुनी गई संख्याएँ उत्पन्न की जा सकती हैं।

सबसे पहले, किसी को संचयी वितरण फ़ंक्शन की आवश्यकता होती है $$F(b)$$ लक्ष्य वितरण का $$f(b)$$:


 * $$F(b)=\int_{-\infty}^b f(b') \, db'$$

ध्यान दें कि $$0=F(-\infty)\leq F(b) \leq F(\infty)=1$$. संभाव्यता घनत्व के रूप में एक समान वितरण से एक यादृच्छिक संख्या c का उपयोग करके पारित करने के लिए, हम प्राप्त करते हैं


 * $$F(b)=c$$

ताकि


 * $$b=F^{-1}(c)$$

वितरण से यादृच्छिक रूप से चुनी गई संख्या है $$f(b)$$. यह प्रतिलोम रूपांतरण प्रतिचयन पर आधारित है।

उदाहरण के लिए, संचयी गॉसियन बंटन का व्युत्क्रम $$\operatorname{erf}^{-1}(x)$$ इनपुट के रूप में रेंज (0, 1) के साथ एक आदर्श समान PRNG के साथ $$x$$ गॉसियन वितरण के साथ (केवल सकारात्मक) मानों का अनुक्रम उत्पन्न करेगा; हालाँकि


 * व्यावहारिक संख्या निरूपण का उपयोग करते समय, वितरण की अनंत पूंछों को परिमित मूल्यों तक छोटा करना पड़ता है।
 * की दोहरावदार पुनर्गणना $$\operatorname{erf}^{-1}(x)$$ तेजी से पीढ़ी के लिए ज़िगगुरैट एल्गोरिथम जैसे माध्यमों से कम किया जाना चाहिए।

रेले वितरण और पॉसों वितरण जैसे अन्य गैर-समान वितरण उत्पन्न करने के लिए इसी तरह के विचार लागू होते हैं।

यह भी देखें

 * छद्म यादृच्छिक संख्या जनरेटर की सूची
 * यादृच्छिकता के अनुप्रयोग
 * कम विसंगति अनुक्रम
 * छद्म आयामी द्विआधारी अनुक्रम
 * छद्म यादृच्छिक शोर
 * छद्म यादृच्छिक संख्या
 * यादृच्छिक संख्या पीढ़ी
 * यादृच्छिक संख्या जनरेटर हमला
 * यादृच्छिकता
 * सांख्यिकीय यादृच्छिकता

ग्रन्थसूची

 * Barker E., Kelsey J., Recommendation for Random Number Generation Using Deterministic Random Bit Generators, NIST SP800-90A, January 2012
 * Brent R.P., "Some long-period random number generators using shifts and xors", ANZIAM Journal, 2007; 48:C188–C202
 * Gentle J.E. (2003), Random Number Generation and Monte Carlo Methods, Springer.
 * Hörmann W., Leydold J., Derflinger G. (2004, 2011), Automatic Nonuniform Random Variate Generation, Springer-Verlag.
 * Knuth D.E. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89684-2. Chapter 3. [Extensive coverage of statistical tests for non-randomness.]
 * Luby M., Pseudorandomness and Cryptographic Applications, Princeton Univ Press, 1996. ISBN 9780691025469
 * von Neumann J., "Various techniques used in connection with random digits," in A.S. Householder, G.E. Forsythe, and H.H. Germond, eds., Monte Carlo Method, National Bureau of Standards Applied Mathematics Series, 12 (Washington, D.C.: U.S. Government Printing Office, 1951): 36–38.
 * Press W.H., Teukolsky S.A., Vetterling W.T., Flannery B.P. (2007), Numerical Recipes (Cambridge University Press).
 * Viega J., "Practical Random Number Generation in Software", in Proc. 19th Annual Computer Security Applications Conference, Dec. 2003.
 * Viega J., "Practical Random Number Generation in Software", in Proc. 19th Annual Computer Security Applications Conference, Dec. 2003.

बाहरी संबंध

 * TestU01: A free, state-of-the-art (GPL) C++ Random Number Test Suite.
 * DieHarder: A free (GPL) C Random Number Test Suite.
 * "Generating random numbers" (in embedded systems) by Eric Uner (2004)
 * "Analysis of the Linux Random Number Generator" by Zvi Gutterman, Benny Pinkas, and Tzachy Reinman (2006)
 * "Better pseudorandom generators" by Parikshit Gopalan, Raghu Meka, Omer Reingold, Luca Trevisan, and Salil Vadhan (Microsoft Research, 2012)
 * by Stephan Lavavej (Microsoft, 2013)
 * Wsphynx a simple online random number generator.Random number are generated by Javascript pseudorandom number generators (PRNGs) algorithms