测试结果和预期不一样,每次都是固定的结果输出

using System;

namespace Janken
{
// 結果イベント用のデリゲート
public delegate void ResultEvent(object sender, Character chara);

/// <summary>
/// じゃんけんパターン
/// </summary>
enum JankenPattern
{
    pa = 1, // パー布
    choki,  // チョキ剪刀
    goo     // グー石头
}

/// <summary>
/// じゃんけんゲーム
/// </summary>
class Program
{
    public static event ResultEvent resultEvent;    // 結果表示用イベント

    /// <summary>
    /// メイン処理
    /// </summary>
    /// <param name="args"></param>
    [STAThread]
    static void Main(string[] args)
    {
        Character char1;                        // キャラクター1
        Character char2;                        // キャラクター2
        int cnt = 1;                            // カウンタ

        resultEvent += new ResultEvent(result);

        // 起動メッセージを表示
        Console.WriteLine("キャラクター設定");

        // キャラクターのインスタンス化
        char1 = new Character("キャラクター1");


        // 名前の設定
        Console.Write("[キャラクター1]の名前を入力してください > ");
        char1.NameValue = Console.ReadLine();

        // じゃんけんパターンの設定
        char1.J_patternValue = setJPattern(char1.NameValue);

        // キャラクターのインスタンス化
        char2 = new Character("キャラクター2");

        // 名前の設定
        Console.Write("[キャラクター2]の名前を入力してください > ");
        char2.NameValue = Console.ReadLine();

        // じゃんけんパターンの設定
                    char2.J_patternValue = setJPattern(char2.NameValue);

        // じゃんけん開始メッセージを表示する
        Console.WriteLine();
        Console.WriteLine("じゃけん開始!");

        while(true)
        {
            int result = 0;
            result = int.Parse(char1.J_patternValue) - int.Parse(char2.J_patternValue);              //じゃんけん結果

            if (result == -1 || result == 2)
            {
                char1.LossCntValue += 1;
                char2.WinCntValue += 1;
            }
            else if(result == 0)
            {
                char1.DrawCntValue += 1;
                char2.DrawCntValue += 1;
            }
            else
            {
                char1.WinCntValue += 1;
                char2.LossCntValue += 1;
            }

            Console.WriteLine("{0}回戦 [{1}]{2}  :  [{3}]{4}", cnt, char1.NameValue, char1.Get_jPattern(), char2.NameValue, char2.Get_jPattern());
            cnt++;

            if (char1.WinCntValue == 3)
            {
                resultEvent(null,char1);
                break;
            }
            if(char2.WinCntValue == 3)
            {
                resultEvent(null, char2);
                break;
            }

        }
    }

    /// <summary>
    /// じゃんけんパターンの設定
    /// </summary>
    /// <returns></returns>
    private static string setJPattern(string name)
    {
        string pattern = "";            // パターン値格納用
        while (!chackJPattern(pattern))
        {
            Console.Write("[{0}]のじゃんけんパターンを入力してください (1:パーが多い, 2:チョキが多い, 3:グーが多い)> ", name);
            pattern = Console.ReadLine();
        }
        return pattern;
    }

    /// <summary>
    /// じゃんけんパターンの入力値をチェック
    /// </summary>
    /// <param name="j_pattern"></param>
    /// <returns>true:正常、false:異常</returns>
    private static bool chackJPattern(string j_pattern)
    {
        // 入力値が1~3の場合入力OK
        if (j_pattern.Equals("1") || j_pattern.Equals("2") ||
            j_pattern.Equals("3"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    /// <summary>
    /// じゃんけんゲームの結果を表示
    /// </summary>
    /// <param name="chara"></param>
    public static void result(object o, Character chara)
    {
        Console.WriteLine("[{0}]が{1}勝{2}敗{3}分けで勝ちました。", chara.NameValue, chara.WinCntValue,
                                                                        chara.LossCntValue, chara.DrawCntValue);
    }

}



/// <summary>
/// キャラクタークラス
/// キャラクター情報を保持する
/// </summary>
public class Character
{

    /// <summary>
    /// コンストラクタ
    /// 名前の初期化を行う
    /// </summary>
    /// <param name="initName"></param>
    private string initname;
    public Character(string initName)
    {
        this.initname = initName;
    }

    // 名前の設定、取得
    public string NameValue { get; set; } = "";

    // じゃんけんパターンの設定、取得
    private int j_patternvalue;
    public string J_patternValue
    {
        get
        {
            //乱数取得
            Random rnd = new System.Random();
            int rndresult = rnd.Next(1, 10);

            switch (j_patternvalue)
            {
                case (int)JankenPattern.pa:
                    if (1 <= rndresult && rndresult <= 5)
                    {
                        j_patternvalue = (int)JankenPattern.pa;
                    }
                    else if (6 <= rndresult && rndresult <= 8)
                    {
                        j_patternvalue = (int)JankenPattern.choki;
                    }
                    else if (9 <= rndresult && rndresult <= 10)
                    {
                        j_patternvalue = (int)JankenPattern.goo;
                    }
                    return j_patternvalue.ToString();
                case (int)JankenPattern.choki:
                    if (1 <= rndresult && rndresult <= 5)
                    {
                        j_patternvalue = (int)JankenPattern.choki;
                    }
                    else if (6 <= rndresult && rndresult <= 8)
                    {
                        j_patternvalue = (int)JankenPattern.goo;
                    }
                    else if (9 <= rndresult && rndresult <= 10)
                    {
                        j_patternvalue = (int)JankenPattern.pa;
                    }
                    return j_patternvalue.ToString();
                case (int)JankenPattern.goo:
                    if (1 <= rndresult && rndresult <= 5)
                    {
                        j_patternvalue = (int)JankenPattern.goo;
                    }
                    else if (6 <= rndresult && rndresult <= 8)
                    {
                        j_patternvalue = (int)JankenPattern.pa;
                    }
                    else if (9 <= rndresult && rndresult <= 10)
                    {
                        j_patternvalue = (int)JankenPattern.choki;
                    }
                    return j_patternvalue.ToString();
                default:
                    return j_patternvalue.ToString();
            }
        }
        set
        {
            j_patternvalue = int.Parse(value);
        }
    }

    // 勝つ回数の設定、取得
    public int WinCntValue { get; set; }

    // 負け回数の設定、取得
    public int LossCntValue { get; set; }

    // 引き分け回数の設定、取得
    public int DrawCntValue { set; get; }

    /// <summary>
    /// じゃんけんの手を取得する
    /// </summary>
    /// <returns>じゃんけんの手</returns>
    public string Get_jPattern()
    {
        if(j_patternvalue == (int)JankenPattern.pa)
        {
            return "パー";
        }
        else if(j_patternvalue == (int)JankenPattern.choki)
        {
            return "チョキ";
        }
        else
        {
            return "グー";
        }
    }

}

}

Random rnd = new System.Random(); 这一行,放在 public string J_patternValue 的上面