C# - 乱数を使用し、サイコロを実現する

C# でサイコロを再現する サンプルプログラム と 解説 です。

乱数の生成方法

C# で乱数を生成するには、Random クラスを使用します。Random クラスの インスタンスを生成(new) し、 Next() メソッドを呼ぶ度に 乱数 が返されます。
using System;

var rand = new Random();

乱数値(最小値 ~ 最大値 - 1) = rand.Next(最小値, 最大値);
乱数値(最小値 ~ 最大値 - 1) = rand.Next(最小値, 最大値);
乱数値(最小値 ~ 最大値 - 1) = rand.Next(最小値, 最大値);

サイコロの実現

1 ~ 6 の値をランダムに生成するには、次のようにします。
using System;

Random rand = new Random();

int サイコロの結果(1 ~ 6) = rand.Next(1, 7);
サイコロの結果(1 ~ 6) = rand.Next(1, 7);
サイコロの結果(1 ~ 6) = rand.Next(1, 7);
サイコロの結果(1 ~ 6) = rand.Next(1, 7);

複数のサイコロを振る

サンプルプログラム - 複数のサイコロを振る、サイコロ関数
using System;
using System.Collections.Generic;

/// <summary>
/// 複数のサイコロを振る関数
/// </summary>
/// <param name="サイコロの個数">一度に振るサイコロの個数</param>
/// <param name="サイコロ出目の最小値">サイコロを振った結果の最小値</param>
/// <param name="サイコロ出目の最大値">サイコロを振った結果の最大値</param>
/// <returns>サイコロの結果。サイコロの個数分、リスト形式で結果を返す。</returns>
List<int> サイコロ(int サイコロの個数, int サイコロ出目の最小値, int サイコロ出目の最大値)
{
    var サイコロの結果リスト = new List<int>();

    // Random クラスのインスタンス生成
    var rand = new Random();

    // サイコロの個数 分、ループ
    for (int i = 0; i < サイコロの個数; i++)
    {
        var サイコロの結果 = rand.Next(サイコロ出目の最小値, サイコロ出目の最大値 + 1);

        // サイコロの結果を格納
        サイコロの結果リスト.Add(サイコロの結果);
    }

    return サイコロの結果リスト;
}

サンプルプログラム - サイコロ関数の使用例

// 4個のサイコロを振る
int サイコロの個数 = 4;

// サイコロの目は 1 ~ 6
int サイコロ出目の最小値 = 1;
int サイコロ出目の最大値 = 6;

// サイコロを振る
List<int> サイコロの結果リスト = サイコロ(サイコロの個数, サイコロ出目の最小値, サイコロ出目の最大値);

// 結果を表示
System.Console.WriteLine($"{サイコロの結果リスト.Count}個のサイコロを投げた結果\r\n");

// 結果の数分、ループ
for (int i = 0; i < サイコロの結果リスト.Count; i++)
{
    // 結果を取得
    int サイコロの結果 = サイコロの結果リスト[i];

    // 結果を表示
    System.Console.WriteLine($"{i + 1}個目 = {サイコロの結果}");
}

サンプルプログラムの実行結果 サンプルプログラムの実行結果

検証環境

関連ページ