每次调用RandomNumber方法都返回相同的数字

问题描述:

每次尝试从for循环中调用RandomNumber方法时,我都试图生成一个不同的随机数.现在,它每次都返回相同的数字.

I am trying to generate a different random number every time my RandomNumber method is called from within my for loop. Right now, it returns the same number every time.

这是我的RandomNumber方法:

This is my RandomNumber method:

    private int RandomNumber(int min, int max)
    {
        Random random = new Random();
        return random.Next(min, max);
    }

这是我在其中使用它的上下文:(这有点混乱,因为我一直在试图使其正常工作…….)

This is the context I am using it in: (it's a little messy just because I have been messing with trying to get it to work....)

        for (int i = 0; i < charsRaw.Length; i++)
        {
            int max = charsRaw.Length - 1;
            int rand = 0;
            rand = RandomNumber(0, max);

            charsNew[i] = charsRaw[rand];
            text2 += charsNew[i];

         }

每次使用for循环调用它时,我似乎都无法使它返回不同的值.

I can't seem to get it to return a different value every time it is called with the for loop.

尽管如此,当我在text2 + = charsNew [i]之后粘贴MessageBox.Show(rand.ToString())时,每次都会给我一个不同的值,并按照我的预期方式工作.奇怪.

Although, when i stick a MessageBox.Show(rand.ToString()) after text2 += charsNew[i], it gives me a different value every time and works the way I intended it to. Strange.

谢谢! 埃里克

实例化一次Random.在同一实例上多次调用.Next().

Instantiate Random once. Call .Next() multiple times on the same instance.

MSDN :

随机数生成开始 从种子值开始.如果是相同的种子 重复使用,相同系列 数字已生成

The random number generation starts from a seed value. If the same seed is used repeatedly, the same series of numbers is generated

如果您希望重复实例化Random,则每次使用不同的种子.

If you do wish to repeatedly instantiate Random, use a different seed each time.