RandomNumber方法返回相同数量的每一次叫(RandomNumber method retu

2019-06-23 10:23发布

我想产生不同的随机数每一个我RandomNumber方法是从内我的for循环调用时。 现在,它会返回相同数量的每一次。

这是我的RandomNumber方法:

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

这是我使用它在上下文:(这是一个有点乱,只是因为我一直在努力得到它的工作搞乱....)

        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循环的时间返回不同的值。

虽然,当我坚持一个MessageBox.Show(rand.ToString())之后文本2 + = charsNew [I],它给了我一个不同的值,每次和我的工作意图的方式运行。 奇怪。

谢谢! 埃里克

Answer 1:

实例随机一次。 呼叫。接下来()在同一实例多次。

MSDN :

随机数生成从种子值开始。 如果相同的种子被重复使用,则产生相同的一系列数字

如果你不希望重复实例随机的,每次都使用不同的种子。



Answer 2:

没有什么说真正的随机序列不能相同数量的每一次! :-)有一个小概率它是合法的,所以你可以从来没有真正确定。 鸭子的封面



文章来源: RandomNumber method returns same number every time called
标签: c# random