Bir hediye çekilişi için kazanan belirlemeniz, tahtaya kalkacak bir öğrenciyi seçmeniz veya çayları kimin demleyeceğine karar vermeniz mi gerekiyor? Bu ücretsiz çevrimiçi rastgele seçici, yapıştırdığınız herhangi bir listeden adil bir şekilde kura çeker. Seçeneklerinizi, her biri yeni bir satırda veya virgülle ayrılmış şekilde “Öğeler” kutusuna girin, “Adet” alanından istediğiniz sonuç sayısını ayarlayın ve “Oluştur” düğmesine basın. Bir listenin en az iki elemanı olmalıdır ve her biri 200 karaktere kadar olan 1000 girişi alabilir.
Her kura, tarayıcınızın kendi işletim sisteminden kriptografik olarak güvenli rastgele değerler sağlayan Web Crypto API (crypto.getRandomValues) kullanılarak doğrudan cihazınızda çekilir. Listeniz hiçbir zaman bir sunucuya gönderilmez, günlüğe kaydedilmez ve bizim tarafımızdan asla görülmez; bu durum, insanların buraya genellikle bir müşteri listesi, bir sınıf yoklama listesi veya iş arkadaşlarının adlarını yapıştırdığı düşünüldüğünde diğer jeneratörlerden çok daha önemlidir. “Dosyadan yükle” düğmesi de aynı sözü tutar: tarayıcınız dosyayı kendisi okur ve internete hiçbir şey yüklemeden kutuyu yerel olarak doldurur.
Seçenekler, insanların gerçekten sahip olduğu listelere göre tasarlanmıştır. “Ayırıcı” seçeneği “Otomatik” konumunda durur; yeni satırları ve virgülleri kendi kendine okuyarak listenizin hangisini kullandığını anlar, böylece bir e-tablodan, sohbet mesajından veya belgeden kopyalanan bir liste hiçbir yeniden biçimlendirmeye gerek kalmadan çalışır. Verileriniz farklı biçimleri birbirine karıştırıyorsa bu ayarı “Yeni satır”, “Virgül” veya “Boşluk” konumuna kilitleyin. “Boşluk” ayarının her zaman bilinçli bir tercih olduğunu ve hiçbir zaman otomatik olarak devreye girmediğini unutmayın; zira tam isimler gibi girişlerin kendi içlerinde boşlukları vardır ve bunların varsayılan olarak bölünmesi yarardan çok zarar getirir. “Adet” seçeneği, 1 ile 100 arasında kaç tane öğenin çekileceğine karar verir. 200 katılımcı arasından üç ödül kazananı mı çekeceksiniz? Katılımcıları yapıştırın, “Adet” ayarını 3 yapın ve “Oluştur” düğmesine basın. İki kontrol yalnızca kura adedi 2 veya daha fazla olduğunda devreye girer ve o zamana kadar gri (pasif) renkte kalır: aynı öğenin iki kez çekilip çekilemeyeceğine karar veren “Tekrarsız” anahtarı ile sonuçların nasıl ayrılacağını belirleyen “Çıktı biçimi” seçeneği (“Her biri yeni satırda”, “Boşlukla ayrılmış” veya “Virgülle ayrılmış”).
“Öğeler” kutusunun içindeki düğmeler dizisi, aksi takdirde başka bir yerde yapmanız gerekecek olan düzenlemeleri üstlenir. “Dosyadan yükle” komutu, listeyi doğrudan düz metin veya CSV dosyasından çeker. “Karıştır” düğmesi kutudaki girdilerin sırasını karıştırır, “Sırala” düğmesi bunları sayıların doğal sıralamasıyla alfabetik olarak dizer (ikinci bir tıklama bu sırayı tersine çevirir), ve “Temizle” düğmesi kutuyu tamamen boşaltır. “Örnek verilerle doldurun” komutu, aracı tek tıkla deneyebilmeniz için kısa bir test listesi bırakırken, “İçeriğe sığacak şekilde genişletin” kutuyu tam boyutta uzun bir liste gösterecek şekilde açar ve “Varsayılan boyuta daralt” kutuyu tekrar geri toplar. Sonucun altında yer alan “Tümünü kopyala”, her kura sonucunu panonuza kopyalar, “Dosyaya kaydet” bunları cihazınıza yazar ve “Geçmiş” sekmesi son 10 çekilişinizi tarayıcınızda tutar, böylece önceki sonuçlara tek tıkla ulaşılabilir.
Kura işlemi gerçekte nasıl yapılıyor? “Oluştur” düğmesine bastığınızda, sayfa Math.random() gibi sözde rastgele bir JavaScript fonksiyonuna güvenmek yerine, crypto.getRandomValues aracılığıyla tarayıcıdan rastgele değerler ister ve bunları listenizdeki konumları seçmek için kullanır. Ham bir 32-bit değerin bir konuma dönüştürülmesi, rastgele seçicilerin sessizce hata yaptığı aşamadır: bu değerin liste uzunluğuna göre modunu almak en bilinen ancak önyargılı yaklaşımdır. Zira 2^32 sayısı listenin uzunluğuna tam olarak bölünmediği sürece, listenin başındaki öğeler diğerlerine kıyasla biraz daha sık denk gelir. Bu kusura modulo bias adı verilir ve tamamen teorik değil, ölçülebilir bir hatadır. Bu seçici, liste uzunluğunun en büyük tam katını aşan herhangi bir değeri basitçe çöpe atar ve yeniden kura çeker; bu tekniğin adı rejection sampling (reddetme örneklemesi) olarak bilinir. Arka planda fazladan birkaç çekilişe mal olur ancak yaklaşık bir sonuç yerine kesin bir adalet garantisi satın alır. Listedeki konum hiçbir şeyi değiştirmez: ilk öğe ile son öğe her çekilişte tamamen aynı olasılığı taşır.
“Tekrarsız” anahtarı, birbirlerinden tamamen farklı iki kura türünü birbirinden ayırır ve istatistiğin her ikisi için de ayrı bir adı vardır. Bu mod açık olduğunda, seçici listenizin bir kopyasını Fisher-Yates algoritması ile karıştırır ve öğeleri en üstten alır; tıpkı bir şapkadan kuraya çekilen kâğıtları geri koymadan çekmek gibi, böylece kimse iki kez seçilmez ve o boyuttaki her grubun seçilme olasılığı eşit olur. Buna sampling without replacement (yerine koymadan örnekleme) denir ve ödül kazananlar, takımlar ve sıra belirlemek için tam olarak ihtiyacınız olan şey budur. Kapalı olduğunda, her bir seçim bağımsız olarak tüm listeden yapılır, bu nedenle aynı öğe birden çok kez çıkabilir. Bu yönteme ise, herkesin tekrarlanan kuralar veya hızlı bir istatistiksel örneklem gibi her turda uygun kalması gerektiğinde ihtiyaç duyulan sampling with replacement (yerine koyarak örnekleme) adı verilir. Bu modlardan hiçbiri diğerinden daha adil değildir; yalnızca farklı sorulara yanıt verirler.
Adil bir çekilişin dışarıdan adil görünmesi beklenmez. On isim arasından beş tanesini çekin; orijinal listede yan yana oturan iki kişinin veya tekrarlara izin verildiğinde aynı ismin art arda iki kez çıktığını düzenli olarak göreceksiniz ve bunların hepsi son derece sıradandır. Her bir kura tamamen bağımsızdır: önceki çekilişlerin sonrakiler üzerinde hiçbir etkisi yoktur ve hiç kimsenin kazanma “sırası” gelmez. Aksini iddia eden içgüdüye gambler's fallacy (kumarbaz safsatası) denir ve bu, kendimiz rastgele seçim yapmamız istendiğinde bizi bu kadar başarısız kılan aynı içgüdüdür: Rastgele bir öğe seçmemiz istendiğinde, ilk ve son girdiden kaçınırız, bir ismi tekrarlamamaya çalışırız ve seçimlerimizi gerçek şansın asla yapamayacağı kadar eşit bir şekilde dağıtırız. Şüpheli bir şekilde düzenli görünen bir sonuç her zaman bir insanın parmak izini taşır; gerçek rastgelelik ise kümeler ve tekrarlar üretir.
Bu rastgele kura aracını neden seçmelisiniz?
- Sadece tarayıcıda çalışma: listeniz kendi cihazınızda okunur ve hiçbir yere gönderilmez
- Web Crypto API rastgeleliği: Math.random() değil, kriptografik olarak güvenli altyapı
- Modulo bias hatası yok: rejection sampling, her öğenin çıkma ihtimalini eşit tutar
- Her türlü liste biçimi: hiçbir yeniden biçimlendirme olmadan yeni satır, virgül veya boşlukla
- “Tekrarsız” modu: kazananları veya takımları kimseyi iki kez seçmeden belirleyin
- 1000 öğeye kadar kapasite ve tek bir kura çekiminde 100'e kadar sonuç
- Yerleşik liste araçları: dosyadan yükle, karıştır, sırala, temizle, örnek veriler
- Geçmiş ve Dosyaya kaydet: sonradan haklı çıkarmanız gerekebilecek kuranın kaydını tutun
- Sınırsız ve ücretsiz: üyelik yok, kullanım limiti yok, sunucularımızda tutulan hiçbir şey yok
Rastgele kura çekimi, bir kararın ileride sorgulanmaya karşı ayakta kalması gereken her yerde karşımıza çıkar. Öğretmenler tahtaya kalkacak öğrencileri kayırma yapmadan seçer ve sınıfı proje gruplarına ayırır. Yayıncılar ve pazarlamacılar, sonuçlara inanması gereken bir izleyici kitlesi önünde çekiliş kazananlarını belirler. Yöneticiler kimsenin gönüllü olmadığı görevleri dağıtırken, ekipler demo sırasını veya kimin nöbetçi olacağını kararlaştırır. Araştırmacılar denetim için kayıtların rastgele bir örneklemini çıkarır. Aileler ne izleyecekleri konusundaki tartışmayı sonlandırır ve aç bir arkadaş grubu hangi kebapçıya gideceğini seçer. Tüm bu senaryolardaki ortak nokta, sonradan herkesin kolayca açıklayabileceği bir seçim olmasıdır: kura çekiminde kriptografik rastgelelik kullanılır, tüm süreç cihazınızda gerçekleşir ve “Geçmiş” sekmesi, ileride birisi sorarsa diye sonuçları saklar.
Aracın birkaç dürüst sınırını bilmekte de fayda vardır. Seçici, listenizin tuttuğundan daha fazla farklı (benzersiz) girdi çekemez; üç kazanan için en az üç isim gerekir. Sistem her biri 200 karakterlik 1000 girişte durur ve tek seferde en fazla 100 kura sonucuna izin verir. “Karıştır” ve “Sırala” komutları satır satır çalışır, bu nedenle virgülle ayrılmış ve tek satıra yapıştırılmış bir liste, yalnızca her satırda bir girdi olacak şekilde ayrıştırıldıktan sonra yeniden sıralanır. Dahası, her ikisi de kura çekimini değil, kutudaki metni yeniden düzenler; listedeki kayıtlarınızın sırası ne olursa olsun çekilişiniz eşit derecede adildir. Ayrıca, sistemsel olarak her giriş tam olarak aynı ağırlığı taşır, bu nedenle bir kurada bir ismin iki kat fazla sayılması gerekiyorsa o ismin listeye iki kez yazılması şarttır. Tüm bu sınırlar dahilinde, sunulan garanti kesinlikle güçlüdür: listenizdeki her bir girdi, her kura çekiminde diğerleriyle tamamen aynı şansa sahiptir.