Rastgele sayı üreteci

Herhangi bir aralıkta rastgele bir sayı, liste veya birden fazla sayı seti üretin — hepsi doğrudan tarayıcınızda kriptografik olarak güvenli rastgelelikle üretilir, asla bir sunucuda değil.

Sonucu almak için Oluştur'a basın
Seçenekler

Hızlı ve adil bir şekilde rastgele bir sayı almak mı istiyorsunuz? Bu ücretsiz, çevrimiçi rastgele sayı üreteci, seçtiğiniz herhangi bir aralıkta tek bir sayı — ya da sayılardan oluşan tam bir liste — üretir: 1 ile 10 arasında basit bir aralıktan tutun da milyarlara uzanan aralıklara kadar. En küçük ve en büyük değerleri “Min” ve “Maks” alanlarına girin, kaç sayıya ihtiyacınız olduğunu “Adet” alanında seçin ve “Oluştur”a basın. Her iki sınır da sonuca dahildir, yani 1 ile 10 arasındaki bir aralık hem 1'i hem de 10'u verebilir.

Her sonuç, doğrudan tarayıcınızda Web Crypto API (crypto.getRandomValues) aracılığıyla üretilir — bu da işletim sisteminin güvenli rastgelelik kaynağından kriptografik olarak güçlü rastgele değerler sağlar. Hiçbir şey bir sunucuya gönderilmez, sonuçlarınız sunucuda saklanmaz ve sayılarınızı asla görmeyiz. Üretim anında gerçekleşir ve gizli kalır, sayfa yüklendikten sonra yavaş bir bağlantıda bile çalışmaya devam eder.

Seçenekler, insanların rastgele sayılara gerçekten ihtiyaç duyduğu gerçek durumlar için tasarlanmıştır. Hiçbir sayının iki kez çıkmaması için “Tekrarsız”ı açın — çekilişler, ödül çekilişleri veya insanları farklı gruplara ayırmak için ihtiyacınız olan ayardır. 500 katılımcı arasından yirmi kazanan mı gerekiyor? “Min”i 1'e, “Maks”ı 500'e ayarlayın, “Tekrarsız”ı açın, “Adet”i 20'ye ayarlayın ve “Oluştur”a basın. “Sıralama düzeni” sonucu artan veya azalan şekilde dizer, bir düğme ise tüm sonuçları tek seferde kopyalar. “Çıktı biçimi”ni “Yeni satır”dan “Boşlukla ayrılmış” veya “Virgülle ayrılmış”a çevirdiğinizde “Set sayısı” alanı ortaya çıkar: aynı anda birden fazla bağımsız çekiliş — örneğin yirmi çekiliş turu için 3'er sayılık yirmi set — “Setler arasında tekrarlara izin ver” ise aynı sayının bunlardan birden fazlasında çıkıp çıkamayacağını belirler.

Rastgelelik gerçekte nasıl üretilir? Tarayıcınız, Math.random() gibi bir JavaScript PRNG'si yerine Web Crypto API aracılığıyla kriptografik olarak güçlü rastgele değerler sağlar. “Oluştur”a bastığınızda, sayfa crypto.getRandomValues aracılığıyla rastgele değerler ister ve bunları seçtiğiniz aralıkta sayılar üretmek için kullanır. Rastgeleliğin temel kaynağı, işletim sisteminin sağladığı güvenli rastgelelik kaynağıdır, bu yüzden sayfanın kendi seed değerini veya sözde rastgele bir diziyi saklamasına gerek yoktur.

Ham bir değeri aralığınıza eşlemek, üreteçlerin sessizce yanıldığı yerdir ve kendi başına bir paragrafı hak eder. Değerin aralığın büyüklüğüne bölümünden kalanı almak açık ama aynı zamanda taraflı bir yaklaşımdır: 2^32 aralığın büyüklüğüne tam bölünmüyorsa, en düşük sayılar diğerlerinden biraz daha sık çıkar. Bu kusura modulo bias denir ve bu, kuramsal değil ölçülebilir bir sorundur. Bu üreteç bunun yerine aralığın en büyük tam katının ötesindeki her değeri eler ve yeniden üretir — bu tekniğe rejection sampling denir. Bu, birkaç ek denemeye mal olur ama karşılığında kesin bir garanti verir: “Min” ile “Maks” arasındaki her sayı tamamen aynı olasılığa sahiptir, neredeyse aynı değil.

Bir sayıyı gerçekten rastgele yapan şey nedir? Bir sonuç, önceki sonuçlar bir sonraki hakkında hiçbir bilgi vermediğinde rastgele kabul edilebilir — ve pratikte bunun üç düzeyi vardır. Math.random() gibi sıradan bir sözde rastgele fonksiyon deterministik bir algoritma çalıştırır: iç durumunu öğrenen herkes tüm diziyi yeniden oluşturabilir, bu da onu bir sunumun slaytlarını karıştırmak için uygun, ancak sonucun tahmin edilebilir olmaması gereken hiçbir şey için uygunsuz kılar. Kriptografik olarak güvenli bir üreteç (CSPRNG) — bu aracın kullandığı düzey — de bir algoritmadır, ama sistemin güvenli bir rastgelelik kaynağını kullanarak tahmin edilemez değerler üretecek şekilde tasarlanmıştır ve çıktıları gözlemlemek bir sonraki değer hakkında hiçbir şey ortaya çıkarmayacak şekilde tasarlanmıştır. Atmosferik gürültü veya radyoaktif bozunma gibi kaynaklardan gelen fiziksel rastgelelik ise her iki düzeyin de üzerinde yer alır, ancak bir aralıktan sayı üretmek söz konusu olduğunda pratik fark ortadan kalkar. Tarayıcıların Math.random()'ı iyileştirmek yerine ayrı bir kripto API'si sunmasının tam nedeni budur: bu ikisi farklı sorunları çözer ve sonucun öngörülemez olması önemli olduğu durumlarda yalnızca biri güvenlidir.

Rastgele bir dizinin insanlara rastgele görünmesi gerekmez. 1 ile 10 arasında on sayı üretin ve düzenli olarak bir tekrar, 7, 7, 8 gibi neredeyse bir çift veya yalnızca yüksek değerlerden oluşan kısa bir dizi göreceksiniz — ve bunların her biri son derece normaldir. Gerçek rastgelelik tahmin edilemezdir, eşit dağılmış değildir: her sayı öncekilerden bağımsız olarak çıkar, önceki sayıların sonrakiler üzerinde kesinlikle hiçbir etkisi yoktur ve hiçbir sayı diğerinden daha fazla “sırası gelmiş” değildir. Aksini iddia eden içgüdü kumarbaz yanılgısıdır ve bu, insanların kendileri rastgele sayı dizileri oluştururken de aynı hataya düşmesine neden olur — bizden rastgele bir dizi uydurmamız istendiğinde, tekrarlardan kaçınırız ve değerleri şansın hiçbir zaman yapmayacağı kadar eşit dağıtırız. Şüphe uyandıracak kadar düzenli görünen bir sonuç, bir insanın parmak izidir; gerçek rastgelelik kümeler oluşturur.

Bu rastgele sayı üretecini neden seçmelisiniz?

Rastgele sayılar çoğu insanın tahmin ettiğinden çok daha fazla yerde kullanılır. Öğretmenler kimseyi kayırmadan öğrencileri çağırır. Yayıncılar ve pazarlama ekipleri, sonuca inanması gereken bir izleyici kitlesi önünde hediye ve çekiliş kazananlarını belirler. Oyuncular kaybolan bir zarın yerini alır veya kimin ilk başlayacağına karar verir, turnuvalarda ise başlangıç sırası çekilişle belirlenir. Araştırmacılar, bulgularının araştırmaya katılmayan kişiler için de geçerli olabilmesi için rastgele bir örneklem seçer. Geliştiriciler test verileri üretir, simülasyonlar için bir tohum (seed) belirler ve QA sırasında tanımlayıcılar seçer. Ortak nokta, sonradan açıklanabilecek rastgele bir seçim sürecidir: çekiliş kriptografik rastgelelik kullandığı ve tamamen cihazınızda gerçekleştiği için, biri sonucu sorgularsa sonucun nasıl üretildiğini gösterebilirsiniz.

Bu üretecin bilinmeye değer birkaç makul sınırı vardır. “Tekrarsız” modu, aralığın içerdiğinden fazla sayı üretemez: 1 ile 10 arasında yirmi benzersiz değer basitçe mevcut değildir. Çekilişler bağımsızdır ve önceki sonuçlar sonrakileri etkilemez, bu yüzden sayfayı yenilemek herhangi bir döngüyü sıfırlamaz — çünkü içinde bulunabileceğiniz bir döngü zaten yoktur. Sayılar kriptografik olarak güçlü olsa da, buradaki çekiliş bir tahmin değil, adil bir seçimdir: resmi piyango çekilişleri kendi fiziksel veya sertifikalı ekipmanlarını kullanır ve tarayıcınızda hesaplanan hiçbir şeyin bunlarla bir bağlantısı yoktur. Bu sınırlar dahilinde garanti güçlüdür: aralığınızdaki her sayı, her bir çekilişte tam olarak aynı şansa sahiptir.

FAQ

Rastgelelik kriptografik olarak güvenli mi?

Tarayıcınızın Web Crypto API'si (crypto.getRandomValues) kullanılır; bu da rastgeleliği işletim sisteminizin kriptografik olarak güvenli kaynağından alır. Basit sözde rastgele fonksiyonlardan farklı olarak, çıktısı pratikte tahmin edilemez olacak şekilde tasarlanmıştır ve rejection sampling, en düşük değerleri kayırmak yerine aralıktaki her sayı için eşit olasılığı korur.

Belirli bir aralıkta rastgele bir sayıyı nasıl üretirim?

En küçük olası değeri “Min” alanına, en büyüğünü ise “Maks” alanına girin, ardından “Oluştur”a basın. Her iki uç değer de sonuçlara dahildir; bu nedenle 1 ile 10 arasındaki bir aralık hem 1'i hem de 10'u üretebilir.

Tek seferde birden fazla rastgele sayı üretebilir miyim?

Evet. “Adet” alanını ihtiyacınız olan miktara (1000'e kadar) ayarlayın, üreteç tüm listeyi tek tıkla üretecektir. Ardından tüm sonuçları kopyalama düğmesiyle panoya kopyalayabilir veya bir dosyaya kaydedebilirsiniz.

Tek seferde birden fazla sayı seti üretebilir miyim?

Evet. “Set sayısı” alanının görünmesi için “Çıktı biçimi”ni “Yeni satır”dan “Boşlukla ayrılmış” veya “Virgülle ayrılmış”a çevirin. Bunu ihtiyacınız olan bağımsız çekiliş sayısına ayarlayın — örneğin yirmi çekiliş turu için 3'er sayılık yirmi set — ve farklı setler arasında tekrarların oluşmasına izin verilip verilmeyeceğini seçin.

Üretilen sayıları sıralayabilir miyim?

Evet. Her listeyi artan veya azalan şekilde sıralamak için “Sıralama düzeni” seçeneğini kullanın, ya da sayıları üretildikleri sırada tutmak için “Yok” olarak bırakın.

Tekrarlanan sayılardan nasıl kaçınırım?

“Tekrarsız” anahtarını açın. Açık olduğunda, listedeki her üretilen sayı farklıdır — çekilişler, ödül çekilişleri veya insanları gruplara ayırmak için idealdir. Aralıkta bulunan sayıdan daha fazla benzersiz değer üretemeyeceğinizi unutmayın: 1 ile 10 arasında 20 benzersiz sayı üretemezsiniz.

Aynı sayılar neden sürekli tekrarlanıyor?

Çünkü bağımsız çekilişler tekrarlanabilir ve rastgelelik tam olarak böyle görünür. Her çekiliş kendinden önceki tüm çekilişleri tamamen göz ardı eder, bu yüzden 1 ile 10 arasındaki bir aralıkta aynı sayının art arda iki kez çıkma olasılığı her seferinde 10'da 1'dir — bu olağandır, bozuk değil. Tekrarsız bir listeye ihtiyacınız varsa “Tekrarsız”ı açın; bu, bir hatayı düzeltmek yerine çekilişi kasıtlı olarak sınırlar.

Rastgele bir dizi neden rastgele görünmüyor?

Çünkü gerçek rastgelelik tahmin edilemezdir, eşit dağılmış değildir. İnsanlar rastgele bir sonucun düzenli dağılmasını bekler, bu yüzden kümeler, tekrarlar ve 7, 7, 8 gibi kısa seriler, tam da rastgeleliğin üretebileceği sonuçlar olmalarına rağmen hata gibi görünür. Bir insana düzenli görünen bir dizi genellikle rastgele olmamıştır.

Bir tarayıcıda üretilen rastgeleliğe güvenebilir miyim?

Evet, burada olduğu gibi Web Crypto API'den geldiğinde. crypto.getRandomValues, Math.random() gibi bir JavaScript PRNG'si yerine işletim sisteminin güvenli rastgelelik kaynağını kullanarak kriptografik olarak güçlü rastgele değerler sağlar. Gerçekten önemli olan herhangi bir şey için güvenilmemesi gereken Math.random()'dır: deterministiktir ve hiçbir zaman tahmin edilemez olacak şekilde tasarlanmamıştır.

Rastgele sayılar tahmin edilebilir mi veya etkilenebilir mi?

Burada hayır. Değerler işletim sisteminizin kriptografik olarak güvenli üretecinden gelir, bu yüzden önceki sonuçları gözlemlemek bir sonraki hakkında hiçbir şey ortaya koymaz ve çekiliş tamamen cihazınızda gerçekleşir — müdahale edilecek bir sunucu ve ele geçirilecek bir istek yoktur. Biz de sonuçlarınızı etkileyemeyiz, çünkü onları asla görmeyiz.

Hediye veya çekiliş kazananlarını seçmek için uygun mu?

Evet. Her katılımcıya bir sayı atayın, o aralıkta bir sonuç üretin ve sayısı eşleşen katılımcı kazanır. Kaynak kriptografik olarak güvenli ve çekiliş tamamen cihazınızda gerçekleştiği için, bir katılımcı sonucu sorgularsa süreci açıklamak ve belgelemek kolaydır. Bir piyango bileti için sayı seçiyorsanız, araç bir tahmin değil, rastgele bir seçim aracı olarak işlev görür: resmi piyango çekilişlerinin bununla hiçbir bağlantısı yoktur.

Sayfayı yenilemek rastgeleliği değiştirir mi?

Hayır, ve buna gerek de yoktur. Her çekiliş, işletim sisteminden zaten yeni rastgele değerler ister, bu yüzden “Oluştur”a art arda on kez bassanız da her basıştan sonra sayfayı yeniden yükleseniz de sonuçlar bağımsızdır. Yeniden başlatılması gereken bir döngü ve eskiyebilecek bir durum yoktur — yenileme yalnızca ekranda gösterilen sonuçları temizler.

Üreteç ücretsiz mi, ve sayılarımı saklıyor musunuz?

Araç tamamen ücretsizdir ve kayıt gerektirmez. Tüm sayılar tarayıcınızda yerel olarak üretilir ve cihazınızı asla terk etmez, bu yüzden istesek bile sonuçlarınızı saklayamaz veya göremeyiz.