गिव्हअवेचा विजेता काढायचा आहे, वर्गातील विद्यार्थ्याला प्रश्न विचारायचा आहे, की भांडी कोण घासणार हे ठरवायचे आहे? हे मोफत ऑनलाइन यादृच्छिक पिकर तुम्ही पेस्ट केलेल्या कोणत्याही यादीमधून अगदी निःपक्षपातीपणे नावे निवडते. तुमचे पर्याय 'घटक' बॉक्समध्ये टाका — एका ओळीवर एक, किंवा स्वल्पविरामाने वेगळे केलेले — तुम्हाला किती परिणाम हवे आहेत ते 'निवडीची संख्या' मध्ये सेट करा आणि 'तयार करा' दाबा. एका यादीसाठी किमान दोन घटकांची आवश्यकता असते आणि यात 200 वर्णांपर्यंतची कमाल 1000 नावे ठेवता येतात.
प्रत्येक निवड थेट तुमच्या ब्राउझरमध्ये Web Crypto API (crypto.getRandomValues) वापरून केली जाते, जे तुमच्या ब्राउझरच्या अंतर्निहित यादृच्छिक प्रणालीमधून क्रिप्टोग्राफिकदृष्ट्या सुरक्षित यादृच्छिक मूल्ये प्रदान करते. तुमची यादी कधीही सर्व्हरवर पाठवली जात नाही, कुठेही जतन केली जात नाही आणि आम्ही ती कधीही पाहत नाही — हे इतर जनरेटरपेक्षा इथे खूप जास्त महत्त्वाचे आहे, कारण लोक इथे जे पेस्ट करतात ते सहसा ग्राहकांची यादी, वर्गातील मुलांची हजेरी किंवा सहकाऱ्यांची नावे असतात. 'फाइलमधून लोड करा' बटणदेखील हेच वचन पाळते: तुमचा ब्राउझर स्वतः ती फाइल वाचतो आणि बॉक्स स्थानिक पातळीवर भरतो, यातील कोणताही डेटा कुठेही अपलोड केला जात नाही.
इथले पर्याय लोक प्रत्यक्षात वापरत असलेल्या याद्यांच्या स्वरूपासाठी बनवले आहेत. 'घटक विभाजक' डीफॉल्टनुसार 'स्वयंचलित शोध' वर सेट असतो, जो नवीन ओळी आणि स्वल्पविराम वाचून तुमच्या यादीत कोणते वापरले आहे ते ओळखतो, त्यामुळे स्प्रेडशीट, चॅट मेसेज किंवा डॉक्युमेंटमधून कॉपी केलेली यादी तिचे स्वरूप न बदलता तशीच काम करते. जेव्हा तुमच्या डेटामध्ये एकापेक्षा जास्त स्वरूपे मिसळलेली असतात, तेव्हा हे सेटिंग 'नवीन ओळ', 'स्वल्पविराम' किंवा 'स्पेस' वर लॉक करा — आणि लक्षात घ्या की 'स्पेस' हा नेहमीच एक जाणीवपूर्वक केलेला पर्याय असतो आणि तो कधीही स्वयंचलित नसतो. कारण पूर्ण नावांसारख्या घटकांमध्ये स्वतःची स्पेस असते आणि त्यांना डीफॉल्टनुसार स्पेसवर विभागल्यास यादी दुरुस्त होण्यापेक्षा ती जास्त खराब होईल. 'निवडीची संख्या' 1 ते 100 पर्यंत किती घटक काढायचे ते ठरवते. 200 स्पर्धकांमधून तीन बक्षीस विजेते निवडत आहात? स्पर्धकांची नावे पेस्ट करा, 'निवडीची संख्या' 3 वर सेट करा आणि 'तयार करा' दाबा. इतर दोन नियंत्रणे निवडीची संख्या 2 किंवा त्याहून अधिक असल्यावरच लागू होतात आणि तोपर्यंत ती राखाडी रंगात (अक्षम) राहतात: 'पुनरावृत्ती टाळा', जे ठरवते की एकच घटक दोनदा काढला जाऊ शकतो का, आणि 'आउटपुट स्वरूप', जे निवडलेले परिणाम कसे वेगळे करायचे ते ठरवते — 'प्रत्येक नवीन ओळीवर', 'स्पेसने विभक्त', किंवा 'स्वल्पविरामाने विभक्त'.
'घटक' बॉक्समधील बटणांची ओळ तुमचे संपादन करण्याचे ते काम करते, जे तुम्हाला एरवी इतर कुठे तरी करावे लागले असते. 'फाइलमधून लोड करा' थेट साध्या मजकूर (प्लेन-टेक्स्ट) किंवा CSV फाइलमधून यादी खेचून आणते. 'मिसळा' बॉक्समधील घटकांचा क्रम यादृच्छिकपणे बदलून टाकते, 'क्रमवारी लावा' त्यांना नैसर्गिकरित्या संख्यांसह वर्णक्रमानुसार (अल्फाबेटिकली) लावते आणि दुसऱ्यांदा क्लिक केल्यास तो क्रम उलट करते, आणि 'साफ करा' बॉक्स रिकामा करते. 'नमुना डेटा भरा' एका क्लिकवर या टूलची चाचणी घेण्यासाठी एक छोटी उदाहरणाची यादी टाकते, तर 'मोठे करा' बॉक्सचा आकार वाढवून मोठी यादी पूर्णपणे दाखवते आणि 'लहान करा' त्याला पुन्हा मूळ आकारात दुमडते. परिणामाच्या खाली, 'सर्व कॉपी करा' प्रत्येक निवड तुमच्या क्लिपबोर्डवर कॉपी करते, 'फाइलमध्ये जतन करा' त्यांना तुमच्या डिव्हाइसवर सेव्ह करते, आणि 'इतिहास' तुमचे मागील 10 ड्रॉ तुमच्या ब्राउझरमध्ये राखून ठेवते, जेणेकरून आधीचा निकाल फक्त एका क्लिकवर उपलब्ध असतो.
ही निवड प्रत्यक्षात कशी केली जाते? जेव्हा तुम्ही 'तयार करा' दाबता, तेव्हा हे पेज Math.random() सारख्या JavaScript च्या स्यूडो-रँडम फंक्शनमधून जाण्याऐवजी crypto.getRandomValues द्वारे ब्राउझरकडे यादृच्छिक मूल्यांची मागणी करते आणि त्यांचा वापर तुमच्या यादीतील स्थाने निवडण्यासाठी करते. 32-बिट कच्च्या मूल्याला एका स्थानात रूपांतरित करतानाच अनेक पिकर नकळत चुका करतात: हे मूल्य यादीच्या लांबीने भागून उर्वरित (मॉड्युलो) घेणे हा सर्वात स्पष्ट आणि पक्षपाती दृष्टिकोन आहे, कारण जोपर्यंत 2^32 या संख्येला यादीच्या लांबीने पूर्ण भाग जात नाही, तोपर्यंत यादीच्या सुरुवातीला असलेले घटक उर्वरित घटकांपेक्षा किंचित जास्त वेळा समोर येतात. या त्रुटीला modulo bias असे म्हणतात, आणि ती केवळ सैद्धांतिक नसून मोजता येण्यासारखी आहे. याउलट, हा पिकर यादीच्या लांबीच्या सर्वात मोठ्या अचूक पटीच्या पलीकडील कोणतेही मूल्य टाकून देतो आणि पुन्हा ड्रॉ काढतो — या तंत्राला rejection sampling म्हणतात. यासाठी पडद्यामागे काही अतिरिक्त ड्रॉ लागतात परंतु ते अंदाजित हमी देण्याऐवजी एक अचूक हमी मिळवून देते. यादीतील स्थानामुळे काहीही बदलत नाही: पहिल्या आणि शेवटच्या घटकाला प्रत्येक ड्रॉमध्ये समान संभाव्यता (प्रॉबेबिलिटी) असते.
'पुनरावृत्ती टाळा' हा पर्याय दोन पूर्णपणे भिन्न प्रकारच्या ड्रॉला वेगळे करतो, आणि आकडेवारीच्या भाषेत प्रत्येकासाठी एक नाव आहे. हे चालू असताना, टूल Fisher-Yates अल्गोरिदमसह तुमच्या यादीची एक प्रत मिसळते आणि वरून घटक घेते — हे अगदी टोपीमधून चिठ्ठ्या काढून त्या परत न टाकल्यासारखे आहे, जेणेकरून कोणाचीही दोनदा निवड होणार नाही आणि त्या आकाराच्या प्रत्येक गटाला निवडले जाण्याची समान संधी असेल. याला sampling without replacement असे म्हणतात, आणि बक्षिसांचे विजेते, संघ आणि खेळाची पाळी ठरवण्यासाठी तुम्हाला हेच हवे असते. हे बंद असताना, प्रत्येक निवड संपूर्ण यादीमधून स्वतंत्रपणे केली जाते, ज्यामुळे एकच घटक एकापेक्षा जास्त वेळा समोर येऊ शकतो — याला sampling with replacement असे म्हणतात. जेव्हा वारंवार काढले जाणारे ड्रॉ किंवा जलद सांख्यिकीय नमुना (सॅम्पल) घेण्यासारख्या प्रत्येक फेरीत प्रत्येकजण पात्र राहणे आवश्यक असते, तेव्हा तुम्हाला याची आवश्यकता असते. या दोन्हीपैकी कोणतीही मोड एकमेकांपेक्षा जास्त निःपक्षपाती नाही; ते फक्त वेगवेगळ्या प्रश्नांची उत्तरे देतात.
एक निःपक्षपाती सोडत वरवर पाहता निःपक्षपाती दिसणार नाही, हेच अपेक्षित असते. दहापैकी पाच नावे काढा आणि तुम्हाला मूळ यादीत शेजारी बसलेल्या दोन निवडी नियमितपणे दिसतील, किंवा पुनरावृत्तीला परवानगी दिल्यास एकच नाव सलग दोनदा दिसू शकेल, आणि यातील प्रत्येक गोष्ट अतिशय सामान्य आहे. प्रत्येक ड्रॉ स्वतंत्र असतो: आधीच्या निवडींचा नंतरच्या निवडींवर कोणताही प्रभाव पडत नाही, आणि कोणत्याही घटकाची जिंकण्याची 'पाळी' कधीही येत नाही. याच्या उलट विचार करण्याच्या मानवी प्रवृत्तीला gambler's fallacy असे म्हणतात, आणि याच प्रवृत्तीमुळे आपण स्वतः यादृच्छिकपणे निवड करण्यात कमकुवत ठरतो — जेव्हा आपल्याला यादृच्छिकपणे निवड करण्यास सांगितले जाते, तेव्हा आपण पहिला आणि शेवटचा घटक टाळतो, नावांची पुनरावृत्ती टाळतो आणि निवडीला खऱ्या संधीपेक्षा खूप जास्त समान रीतीने पसरवतो. एक अतिशय संशयास्पद आणि व्यवस्थित दिसणारा निकाल हा मानवाचाच ठसा असतो; कारण खरी यादृच्छिकता नेहमी पुंजके (क्लंप्स) तयार करते.
हा यादृच्छिक पिकर का निवडावा?
- केवळ-ब्राउझर निवड: तुमची यादी तुमच्या डिव्हाइसवर वाचली जाते आणि ती कुठेही पाठवली जात नाही
- Web Crypto API ची यादृच्छिकता: Math.random() नव्हे, तर क्रिप्टोग्राफिकदृष्ट्या सुरक्षित
- कोणताही modulo bias नाही: rejection sampling प्रत्येक घटकाची संभाव्यता समान ठेवते
- कोणत्याही स्वरूपाची यादी: प्रत्येक ओळीवर एक, स्वल्पविरामाने, किंवा स्पेसने — फॉरमॅट न बदलता
- 'पुनरावृत्ती टाळा' मोड: कोणीही दोनदा निवडले न जाता विजेते किंवा संघ काढा
- 1000 घटकांपर्यंत, आणि एकाच ड्रॉमध्ये 100 निवडींपर्यंतची क्षमता
- अंगभूत यादी साधने: फाइलमधून लोड करा, मिसळा, क्रमवारी लावा, साफ करा, नमुना डेटा
- इतिहास आणि फाइलमध्ये जतन करा: तुम्हाला नंतर स्पष्टीकरण द्यावे लागल्यास ड्रॉची नोंद ठेवा
- अमर्यादित आणि मोफत: कोणतेही साइन-अप नाही, वापराची मर्यादा नाही, आमच्या सर्व्हरवर काहीही नाही
जिथे घेतलेल्या निर्णयावर नंतर प्रश्नचिन्ह निर्माण होऊ शकते आणि तो निर्णय टिकवणे आवश्यक असते, तिथे यादृच्छिक निवड नेहमी उपयोगी पडते. शिक्षक कोणाचाही पक्ष न घेता विद्यार्थ्यांना उत्तर द्यायला सांगतात आणि वर्गाला प्रोजेक्टसाठी गटांमध्ये विभागतात. स्ट्रीमर आणि मार्केटर्स अशा प्रेक्षकांसमोर गिव्हअवे आणि रॅफलचे विजेते काढतात ज्यांना निकालावर विश्वास ठेवावा लागतो. मॅनेजर अशी कामे वाटून देतात जी करण्यासाठी कोणीही स्वेच्छेने पुढे येत नाही, आणि संघ प्रेझेंटेशनचा क्रम किंवा ऑन-कॉल कोण राहणार हे ठरवतात. संशोधक ऑडिट करण्यासाठी रेकॉर्डचा यादृच्छिक नमुना घेतात. कुटुंब चित्रपट कोणता पाहायचा यावरचा वाद संपवतात, आणि भुकेलेले मित्र कोणत्या हॉटेलमध्ये जेवायला जायचे ते ठरवतात. या सर्व परिस्थितींमधील समान धागा म्हणजे एक अशी निवड जी कोणीही नंतर स्पष्ट करू शकतो: हा ड्रॉ क्रिप्टोग्राफिक यादृच्छिकता वापरतो, तो पूर्णपणे तुमच्या डिव्हाइसवर होतो, आणि जर कोणी त्याबद्दल नंतर विचारले तर 'इतिहास' तो निकाल राखून ठेवतो.
या टूलच्या काही प्रामाणिक मर्यादा जाणून घेणे महत्त्वाचे आहे. पिकर तुमच्या यादीत जेवढे घटक आहेत त्यापेक्षा जास्त भिन्न घटक काढू शकत नाही — तीन विजेत्यांसाठी किमान तीन नावे आवश्यक आहेत — आणि तो प्रत्येकी 200 वर्णांच्या 1000 घटकांवर थांबतो, ज्यामध्ये एका ड्रॉमध्ये जास्तीत जास्त 100 निवडी करता येतात. 'मिसळा' आणि 'क्रमवारी लावा' ही बटणे ओळींनुसार काम करतात, त्यामुळे एकाच ओळीवर पेस्ट केलेली आणि स्वल्पविरामाने वेगळी केलेली यादी तेव्हाच पुन्हा लावली जाईल जेव्हा ती प्रत्येक ओळीवर एक घटक या स्वरूपात असेल; आणि ही दोन्ही बटणे ड्रॉचा क्रम बदलण्याऐवजी बॉक्समधील घटकांची पुनर्रचना करतात. तुमचे घटक कोणत्याही क्रमाने असले तरीही हा ड्रॉ तितकाच निःपक्षपाती असतो. डिझाइननुसार प्रत्येक घटकाचे वजन अगदी समान असते, त्यामुळे ज्या ड्रॉमध्ये एका नावाला दुप्पट मोजायचे असेल, तिथे ते नाव यादीत दोनदा लिहावे लागते. या मर्यादांच्या आत इथली हमी अतिशय भक्कम आहे — तुमच्या यादीतील प्रत्येक घटकाला, प्रत्येक ड्रॉमध्ये अगदी समान संधी असते.