.net随机生成器是如何实现的?

wil*_*lem 4 .net c#

我指的是.net/c#中的标准(?)随机生成器

Random random = new Random(seed);
random.next();
Run Code Online (Sandbox Code Playgroud)

我知道文献中有数十种或数百种方法,但我无法找出.net框架目前使用哪种方法?

提问的原因:如果我绘制了很多随机变量,我是否会返回相同的序列.我知道一些RNG有这种不良特性.

not*_*row 11

从有限的数字集合中以相等的概率选择伪随机数.所选择的数字不是完全随机的,因为使用确定的数学算法来选择它们,但是出于实际目的它们是足够随机的.Random类的当前实现基于Donald E. Knuth的减法随机数生成器算法的修改版本.有关更多信息,请参阅DE Knuth."计算机编程的艺术,第2卷:半数值算法".Addison-Wesley,Reading,MA,第二版,1981.

http://msdn.microsoft.com/en-us/library/system.random.aspx