C# Tam Sayı Türünde Rastgele bir Sayı Oluşturma
C# ‘daki Random
sınıf, C#’ da rastgele sayılar üretme işlevselliği sağlar. Random
sınıfı kurucularının değer alan yada almayan iki aşırı yüklenmiş metodu vardır.
Bakınız: C# Console Örnekleri
Random
sınıfı, Random.Next()
, Random.NextBytes()
ve Random.NextDouble()
metotları(yöntemleri) sunar. Random.Next()
methodu rastgele bir sayı döndürür, Random.NextBytes()
, rasgele sayılarla dolu bir bayt dizisi döndürür ve Random.NextDouble()
, 0.0 ile 1.0 arasında rastgele bir sayı döndürme imkanı sunar.
Random.Next()
yöntemi, üç aşırı yüklenmiş durumu sahiptir ve rastgele sayının minimum ve maksimum aralığını ayarlamanıza olanak sağlar.
Aşağıdaki örnek kod rastgele bir sayı döndürür.
1 2 3 4 | Random rnd = new Random(); // Random sınıfı örneği oluşturma int sayi = rnd.Next(); //sayi değişkenine rastgele bir sayı atar. |
Aşağıdaki kod 100’den küçük rasgele bir sayı döndürür.
1 2 3 4 | Random rnd = new Random(); // Random sınıfı örneği oluşturma int sayi = rnd.Next(100); //sayi değişkenine rastgele bir sayı atar. |
Aşağıdaki kod, minimum ve maksimum aralığı belirtilen rasgele bir sayı döndürür.
1 2 3 4 5 6 | int min = 50; int max = 100; Random rnd = new Random(); // Random sınıfı örneği oluşturma int sayi = rnd.Next(min,max); //sayi değişkenine rastgele bir sayı atar. |
Yazının sonundaki rastgele sınıfı için metot olarak yapacak olursak şu şekilde yazabiliriz.
1 2 3 4 5 6 7 8 | // rastgele sayı üret public int RastgeleSayi(int min, int max) { Random rnd = new Random(); return rnd.Next(min, max); } |
C# Rastgele Harf Üretme
Har bir karakterin bir ASCII kod karşılı vardır. “A” harfinin ASCII karşılığı 65, “a” harfinin ASCII karşılığı ise 97dir.
Rastgele büyük bir karakter oluşturmak istersek 65-90 arasında rastgele bir sayı üretmeliyiz.
Rastgele küçük bir karakter oluşturmak istersek 97-122 arasında rastgele bir sayı üretmeliyiz.
Aşağıdaki kod, rastgele büyük bir karakter üretir.
1 2 3 4 5 6 | int min = 65; Random rnd = new Random(); // Random sınıfı örneği oluşturma int sayi = rnd.Next(min,min+25); //sayi değişkenine rastgele bir sayı atar. char harf = Convert.ToChar(sayi);//rastgele bir harf üretir |
0-1 Arasında Rastgele Sayı Üretme
Random
sınıfının NextDouble()
metodu double
türünde rastgele 0-1 arasında bir sayı üretmek için kullanılır. Aşağıdaki örnekte C# kodunda 0-1 arasında rastgele double bir sayı üretilmiştir.
1 2 3 4 5 | Random rnd = new Random(); double ondalik = rnd.NextDouble(); Console.WriteLine(ondalik); |
C# Rastgele Şifre Üretme
Yukarıdaki kodlar ve bilgilerden faydalanarak kendi rastgele sınıfımızı oluşturup, rastgele şifre üretme işlemini yapalım.
Öncelikle Rastgele adında bir tane sınıf oluşturup, rnd adında Random sınıfından bir nesne oluşturalım.
1 2 3 4 5 6 7 8 9 10 | public class Rastgele { Random rnd; public Rastgele() { rnd = new Random(); } } |
Kurucu metot ve Random nesnesini oluşturduktan sonra istenilen aralıkta rastgele sayı üretmek için aşağıdaki metodu yazıyoruz.
1 2 3 4 5 6 7 | // rastgele sayı üret public int RastgeleSayi(int min, int max) { return rnd.Next(min, max); } |
Aynı şekilde belirtilen sayıda(boyut) ve büyük küçük harf üretmek için de aşağıdaki gibi HarfUret metodunu yazıyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | //rastgele harf üretme public string RasteleHarf(int boyut, bool kucukHarf) { string harfler = ""; int sayi, min = 65; char harf; if (kucukHarf) { min = 97; } for (int i = 0; i < boyut; i++) { sayi = rnd.Next(min, min + 25); //sayi değişkenine rastgele bir sayı atar. harf = Convert.ToChar(sayi);//rastgele bir harf üretir harfler += harf; } return harfler; } |
Kodlarımız neredeyse bitti sayılır. Şimdi sırada şifre üretme metodunu yazmaya geldi. İlk 3 harfi büyük harf, 3 tane sayı ve sonra 2 harfi büyük olan bir şifre üretelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 | //şifre üretme public string sifreUret() { Random rnd = new Random(); StringBuilder builder = new StringBuilder(); builder.Append(RasteleHarf(3, true)); builder.Append(rnd.Next(100, 999)); builder.Append(RasteleHarf(2, false)); return builder.ToString(); } |
Rastgele Sınıfı
Sınıfı ve metotları toparlayacak olursa aşağıdaki gibi oluşturmuş oluruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | public class Rastgele { Random rnd; public Rastgele() { rnd = new Random(); } // rastgele sayı üret public int RastgeleSayi(int min, int max) { return rnd.Next(min, max); } //rastgele harf üretme public string RasteleHarf(int boyut, bool kucukHarf) { string harfler = ""; int sayi, min = 65; char harf; if (kucukHarf) { min = 97; } for (int i = 0; i < boyut; i++) { sayi = rnd.Next(min, min + 25); //sayi değişkenine rastgele bir sayı atar. harf = Convert.ToChar(sayi);//rastgele bir harf üretir harfler += harf; } return harfler; } //şifre üretme public string sifreUret() { Random rnd = new Random(); StringBuilder builder = new StringBuilder(); builder.Append(RasteleHarf(3, true)); builder.Append(rnd.Next(100, 999)); builder.Append(RasteleHarf(2, false)); return builder.ToString(); } } |
Sınıfı Kullanan basit bir örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | static void Main(string[] args) { Rastgele rastgele = new Rastgele(); int sayi = rastgele.RastgeleSayi(10, 100);//10-100 arasında sayı üretir. string yazi = rastgele.RasteleHarf(5, true);//5 tane rastgele küçük harf üretir. string sifre = rastgele.sifreUret(); //8 haneli rastgele şifre üretir (aaa111AA şeklinde) Console.WriteLine("Rastgele Sayı:"+sayi); Console.WriteLine("Rastgele Harf:" + yazi); Console.WriteLine("Rastgele Şifre:" + sifre); Console.ReadLine(); } |
Çıktı:

Yorum Yap