Rastgele Sayı Üretici Nedir?
İngilizce: Random Number Generator
Yayın: · Son güncelleme:
Rastgele Sayı Üretici Nedir? Kısaca
Rastgele sayı üretici (RNG), önceden tahmin edilemeyen sayı dizileri üreten algoritma ya da donanımdır. Yazılımda çoğunlukla bir başlangıç değerinden (seed) türetilen sözde rastgele üreticiler kullanılır.

Rastgele sayı üretici nedir?
Rastgele sayı üretici, oyunlarda zar atmaktan şifre üretmeye kadar birçok işte gereken tahmin edilemez sayıları sağlar. İngilizce kısaltması RNG'dir (random number generator). Bilgisayar kurallara göre çalışan bir makine olduğu için gerçek rastgelelik üretmek sanıldığı kadar kolay değildir.
Bu yüzden üç tür üretici ayırt edilir. Her biri farklı bir ihtiyaca cevap verir.
Türleri ve farkları
| Tür | Kaynağı | Uygun kullanım |
|---|---|---|
| Sözde rastgele (PRNG) | Matematiksel formül ve seed | Oyun, simülasyon, test |
| Kriptografik (CSPRNG) | İşletim sisteminin güvenli kaynağı | Parola, token, anahtar |
| Donanımsal (TRNG) | Fiziksel gürültü | Güvenlik donanımları |
Sözde rastgele üretici bir başlangıç değeri alır ve formülle sayı dizisi türetir. Aynı seed her zaman aynı diziyi verir. Python'da random.seed(42) yazıp ardından random.randint(1, 6) çağırırsanız, programı her çalıştırdığınızda aynı "zar" sonucunu alırsınız. Bu, testleri tekrarlanabilir yapmak için kullanışlıdır.
Güvenlikte nelere dikkat etmeli?
Sıradan PRNG'ler güvenlik işleri için uygun değildir. Yeterince çıktı gören biri, sonraki sayıları tahmin edebilir. JavaScript'teki Math.random() ve Python'daki random modülü bu gruptadır.
Şifre sıfırlama bağlantısı, oturum token'ı ya da doğrulama kodu üretirken kriptografik üretici kullanın. Python'da secrets modülü, tarayıcıda crypto.getRandomValues(), Node.js'te crypto.randomBytes() bu iş için tasarlanmıştır. Çekiliş gibi sonucu itiraz doğurabilecek işlerde de güvenli üretici seçmek ve yöntemi kayıt altına almak iyi bir uygulamadır.
Sıkça Sorulan Sorular
Bilgisayar gerçekten rastgele sayı üretebilir mi?
Saf yazılım yalnız sözde rastgele sayı üretir. İşletim sistemleri ise donanım zamanlamaları gibi fiziksel kaynaklardan topladığı belirsizliği kullanarak güvenlik işlerine yetecek kalitede rastgelelik sağlar.
Seed değeri neden önemlidir?
Sözde rastgele üreticinin ürettiği dizi tamamen seed'e bağlıdır. Seed bilinirse tüm dizi yeniden üretilebilir, bu yüzden testte faydalı, güvenlikte ise risklidir.