Random Sınıfını Tanıma

Random sınıfı, C# dilinde rastgele sayı, karakter veya değerler üretmek için kullanılan bir sınıftır. Bu sınıf, farklı veri tiplerinde rastgele değerler üretebilir. Rastgele sayı üretimi, genellikle oyun geliştirme, simülasyon ve test senaryolarında sıkça kullanılır. Random sınıfının mantığı, matematiksel algoritmalara dayalı olup, "pseudo-random" yani sahte rastgele sayılar üretir. Gerçekten rastgele değildir, belirli bir algoritma tarafından üretilir.

Random random = new Random();
int rastgeleSayi = random.Next(); // Varsayılan rastgele sayı
Console.WriteLine("Rastgele Sayı: " + rastgeleSayi);

Belirli Bir Aralıkta Rastgele Sayı Üretme

Random sınıfı, belirli bir aralıkta sayı üretmenize de olanak tanır. Örneğin, Next(int minValue, int maxValue); metodunu kullanarak belirli bir aralıktaki sayıları elde edebilirsiniz. Bu yöntem, genellikle belirli sınırlar içerisinde çalışan oyunlarda veya simülasyonlarda kullanılır.

Random random = new Random();
int rastgeleSayi = random.Next(1, 100); // 1 ile 100 arasında rastgele sayı
Console.WriteLine("1 ile 100 Arasında Rastgele Sayı: " + rastgeleSayi);

Rastgele Ondalık (Double) Sayı Üretme

Sadece tamsayı değil, ondalık sayılar da üretilebilir. Random sınıfı NextDouble() metodu ile 0.0 ile 1.0 arasında bir ondalık sayı üretir. Bu sayı daha sonra başka bir aralığa çevrilebilir.

Random random = new Random();
double rastgeleOndalik = random.NextDouble(); // 0.0 ile 1.0 arasında rastgele ondalık sayı
Console.WriteLine("Rastgele Ondalık Sayı: " + rastgeleOndalik);

Rastgele Karakter ve Diziler Üretme

Sayıların yanı sıra, rastgele karakterler veya diziler de oluşturulabilir. Karakterlerin rastgele seçimi için önce bir karakter havuzu oluşturulur, ardından her bir karakter bu havuzdan rastgele seçilir.

Random random = new Random();
char[] karakterHavuzu = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
string rastgeleMetin = "";
for (int i = 0; i < 5; i++) {
    int index = random.Next(karakterHavuzu.Length);
    rastgeleMetin += karakterHavuzu[index];
}
Console.WriteLine("Rastgele Metin: " + rastgeleMetin);

Tohum (Seed) Kullanarak Rastgele Sayı Üretimi

Random sınıfı tohum (seed) adı verilen bir başlangıç değeri ile çalışır. Aynı tohum değeri ile başlatılan Random nesneleri, aynı rastgele sayıları üretir. Bu özellik, test ve simülasyon senaryolarında tutarlılık sağlamak için kullanılır.

Random randomSeed = new Random(42); // Aynı tohumla başlatıldığında aynı değerleri üretir
int seedSayi1 = randomSeed.Next();
int seedSayi2 = randomSeed.Next();
Console.WriteLine($"Seed ile Üretilen Sayılar: {seedSayi1}, {seedSayi2}");

Rastgele Boolean Değeri Üretme

Random sınıfı kullanılarak boolean değerleri de üretilebilir. Bunun için, 0 veya 1 gibi iki değer arasında rastgele bir sayı üretilir ve bu sayıya bağlı olarak true veya false döndürülür.

Random random = new Random();
bool rastgeleBoolean = random.Next(2) == 0; // 0 için false, 1 için true
Console.WriteLine("Rastgele Boolean: " + rastgeleBoolean);

Rastgele Eleman Seçimi

Bir diziden rastgele bir eleman seçmek, genellikle oyunlarda veya anketlerde rastgele sonuçlar oluşturmak için kullanılır. Random.Next() metodu ile dizi indeksine göre rastgele bir eleman seçilebilir.

Random random = new Random();
string[] renkler = { "Kırmızı", "Yeşil", "Mavi", "Sarı" };
string rastgeleRenk = renkler[random.Next(renkler.Length)];
Console.WriteLine("Rastgele Seçilen Renk: " + rastgeleRenk);

Bir Arada Kullanım

Yukarıda bahsedilen tüm konuların bir arada kullanıldığı bir örnekle pekiştirelim. Aşağıdaki örnek, rastgele sayılar, karakterler ve boolean değerleri üretir, ardından bir diziden rastgele eleman seçimi yapar.

Random random = new Random();

// Rastgele tamsayı
int rastgeleSayi = random.Next(1, 100);
Console.WriteLine("1 ile 100 Arasında Rastgele Sayı: " + rastgeleSayi);

// Rastgele ondalık sayı
double rastgeleOndalik = random.NextDouble();
Console.WriteLine("0.0 ile 1.0 Arasında Rastgele Ondalık Sayı: " + rastgeleOndalik);

// Rastgele karakter dizisi
char[] karakterHavuzu = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
string rastgeleMetin = "";
for (int i = 0; i < 5; i++) {
    rastgeleMetin += karakterHavuzu[random.Next(karakterHavuzu.Length)];
}
Console.WriteLine("Rastgele Metin: " + rastgeleMetin);

// Rastgele boolean
bool rastgeleBoolean = random.Next(2) == 0;
Console.WriteLine("Rastgele Boolean: " + (rastgeleBoolean ? "True" : "False"));

// Rastgele diziden eleman seçimi
string[] renkler = { "Kırmızı", "Yeşil", "Mavi", "Sarı" };
string rastgeleRenk = renkler[random.Next(renkler.Length)];
Console.WriteLine("Rastgele Seçilen Renk: " + rastgeleRenk);