Bana bir kahve ısmarla
Blog'a Dön
Education

Gerçek Rastgele vs Sözde Rastgele: Aslında Ne Önemlidir

Random Select Team•2026-04-01•7 min

Bir düğmeye basarsınız, bir sayı belirir ve rastgele olduğu varsayılır. Sorulmaya değer soru, onu neyin ürettiğidir — çünkü iki yanıttan biri doğrulanabilir, diğeri değildir.

Gerçek Rastgelelik Nereden Gelir

Gerçek rastgelelik, önceki duruma bağlı olmayan fiziksel süreçlerden gelir:

  • Radyoaktif bozunma — bir atomun bozunduğu tam an öngörülemez
  • Termal gürültü — bir dirençteki rastgele voltaj dalgalanmaları
  • Atmosferik gürültü — yıldırım etkinliğinin arka plan paraziti
  • Kuantum ölçümü — gerçekten belirsiz olan sonuçlar

Bunlar rastgeleliğin yaklaşımları değildir. Geçmiş hakkındaki hiçbir bilginin sonucu belirlemediği anlamında rastgeledirler.

Bir Bilgisayar Bunun Yerine Ne Yapar

Bir bilgisayar bunların hiçbirini doğrudan gözlemleyemez, bu yüzden bir donanım üreteci bunları örnekler. Ham baytlar /dev/urandom gibi bir kaynaktan veya eşdeğer işletim sistemi kaynağından gelir; bu kaynak da fiziksel süreçlerle tohumlanır. İşte bu gerçek rastgele sayı üretecidir.

Çok daha yaygın durum sözde rastgele sayı üretecidir: yalnızca rastgele görünen bir dizi üreten deterministik bir algoritma.

next = (previous × multiplier + increment) mod modulus

Kritik özellik ince değildir. Algoritmayı ve tohumu biliyorsanız, dizinin üreteceği her değeri hesaplayabilirsiniz. Yaklaşık olarak değil, tam olarak.

Bu yüzden neredeyse her web sitesinin kullandığı Math.random(), önem taşıyan hiçbir şey için uygun değildir. Çıktısı iç duruma bağlıdır. Bu durumu gözlenen çıktılardan geri kurtarın, gelecekteki her atış öngörülebilir hale gelir.

En sık aktarılan örnek, doğrusal kongrüans üretecinin tüm durumunun birkaç ardışık çıktıdan kurtarılabileceğidir. Python’da varsayılan olan Mersenne Twister ise yeniden oluşturmak için 624 çıktı gerektirir — ve 624, saniyeler içinde ulaşacağınız bir sayıdır.

Xorshift ve benzeri hızlı üreteçler aynı özelliği farklı bir biçimde taşır: mükemmel istatistiksel kalite, duruma sahipseniz tamamen öngörülebilir.

Gerçekten Önem Taşıyan Orta Yol

Bu, çoğu açıklamanın atladığı kısımdır ve pratikte yanıtı belirleyen de bu kısımdır.

Araç tarafından üretilen rastgele bir sayı

Modern web platformları her çağrıda ham /dev/urandom kullanmaz. Kriptografik olarak güvenli bir PRNG kullanırlar: deterministik bir algoritma, ancak donanım entropisiyle tohumlanır ve çıktıları gözlemlemenin durumu geri kurtarmanıza izin vermeyeceği şekilde tasarlanır.

Ayrım konusunda kesin olmakta fayda var, çünkü ikisi karıştırılır:

Donanım TRNG CSPRNG Sıradan PRNG
Fiziksel entropiye dayanır Evet Evet Hayır
Durum verildiğinde deterministik Hayır Evet Evet
Çıktı durumu açığa çıkarır Hayır Hayır Evet
Ödül çekilişi için uygun Evet Evet Hayır

Bir CSPRNG, kullandığınız her yazılımın deterministik olmasıyla aynı anlamda deterministiktir. Onu kabul edilebilir kılan şey, durumun şimdiye kadar ürettiklerinden geri kurtarılamamasıdır.

Tarayıcılar bunu tam olarak crypto.getRandomValues() üzerinden sunar. RandomSelect’in çektiği kaynak budur.

Adalet İkinci Bir Sorudur

İyi bir kaynakla bile tekdüzeliği yanlış yapmak kolaydır. Bir d6 basittir: altı eşit olasılıklı değer. Bir d7 değildir ve “40 isimden 1’ini seç” de değildir.

Naif yaklaşım — 0 ile 1 arasındaki rastgele bir ondalık sayıyı aralığa ölçeklemek — alt ucu yanlı yapar. 40 isimle, ilk isim son isimden biraz daha sık çıkar, çünkü bazı rastgele değerler son kovanın ötesine düşer ve eşitsiz biçimde atılır.

Doğru yaklaşım reddetme örneklemesidir: çekin ve sonuç eksik kalan son kovaya düşerse onu atıp yeniden çekin. Dağılım tam olarak tekdüze hale gelir.

Yanlılık küçük olduğu için bunu gözden kaçırmak kolaydır. Pratikte uygulama, aralık dışı değerleri reddedip yeniden çeker, böylece her girdinin tam olarak 1/N şansı olur — ölçeklenmiş ondalık uygulamasının ilk isme çok az daha yüksek olasılık vereceği 40 isimlik çekiliş de dahil.

Aynı teknik kısa kimlik üretecinde de görülür; koddaki yorum kabul oranını ve ortaya çıkan on milyonda yaklaşık iki düzeyindeki yanlılığı belirtir. Göz ardı edilecek kadar küçük ve dikkatsiz bir uygulamanın fark edilmeden geçebileceği kadar küçük — ölçmenin amacı da tam olarak budur.

Bu Pratikte Ne Anlama Gelir

Öğle yemeği seçmek için bunların hiçbiri önemli değildir. Herhangi bir üreteç kabul edilebilir bir öğle yemeği üretir.

Bir ödül çekilişi, bir çalışan ataması veya itibarla bağlantılı herhangi bir şey için soru, çıktının önceden tahmin edilip edilemeyeceğidir. Math.random() ile prensipte edilebilir. crypto.getRandomValues() ile edilemez — ki bu “rastgele olduğunu söylüyoruz” ile “mekanizma bunu böyle kılıyor” arasındaki farktır.

Animasyonla ilgili, sık karıştırılan ilgili bir nokta vardır. Dönen bir çarkta sonuç, çark hareket etmeye başlamadan önce sabitlenir; animasyon ona doğru oynar. Bazı okuyucular bunu manipülasyon kanıtı olarak görür. Tam tersidir: sonuç zaten belirlenmiş ve zamanlamadan etkilenemeyeceği için kimsenin istismar edebileceği bir girdi yoktur. Görsel, zaten sabitlenmiş bir değerin üzerindeki tiyatrodur.

Kendiniz Test Edin

Kod gerektirmeyen hızlı bir alıştırma: bir zarı yirmi kez atın ve sonuçları yazın. Sonra serileri arayın.

Onları bulacaksınız. Üst üste üç altı, kabaca her elli atışta bir gerçekleşir. Bu, zarın hileli olduğunun işareti değildir — adil bir sürecin kısa bir örneklemi incelediğinizde göründüğü şeydir.

Sonra yüz kez atın ve her yüzü sayın. Farklar daralır. Kimse bir yere yakınsamaz, çünkü kapatılacak bir açık hiç olmamıştır: yeterince yakından baktığınızda bağımsızlığın anlamı budur.

Daha Fazla Nerede Okunur

Bu sitedeki adalet sayfası, reddetme örneklemesi adımı da dahil olmak üzere gerçek uygulamayı adım adım anlatır. Özellikle sorgulanacak bir karar için araç seçiyorsanız, bir kez okumaya değer.

Pratik özet kısadır: crypto.getRandomValues() kullanan ve aralık dışı çekilişleri reddeden bir araç doğru şeyi yapıyor demektir ve bunun için sözüne güvenmeniz gerekmez — mekanizma hakkında akıl yürütebilirsiniz.

RST

Random Select Team

Random Select ekibinde yer alan uzman bir veri analisti ve oyun kuramcısı. Dijital adalet, olasılık matematiği ve rastgele karar araçları konularında 10 yıldan fazla deneyime sahiptir.

Bu makaleyi paylaş