F# using System.Random() to get random number lists give the same lists
<p>I have been searching other questions, where users would instantiate many <code>System.Random()</code>'s within a loop or method and therefore create many of the same randoms from the same clock. But here I have one instantiated <code>System.Random()</code> but when I try to use it to create multiple random number lists, they are all the same.</p>

<pre><code>module Scripts =
let rnd = System.Random() 

let getRandom36 =
    let rec generate (l : list&lt;int&gt;) =
        match l.Length with
        |8 -&gt; l
        |_ -&gt; let number = rnd.Next 38
              if(List.exists(fun elem -&gt; elem=number) l) then generate l else generate (number::l)
    List.sort(generate List.empty)

let myseq = Seq.init 4 (fun _ -&gt; getRandom36)
</code></pre>

<p>The important part is not really how the code inside <code>getRandom36</code> works, I have been tampering with it to work in different ways, but I keep getting lists that look the same when calling <code>myseq;;</code>.</p>

<pre><code>myseq;;
val it : seq&lt;int list&gt; =
  seq
    [[2; 8; 10; 11; 18; 21; 22; 35]; [2; 8; 10; 11; 18; 21; 22; 35];
     [2; 8; 10; 11; 18; 21; 22; 35]; [2; 8; 10; 11; 18; 21; 22; 35]; ...]
</code></pre>

<p>Any ideas why? I mean shouldn't the <code>rnd.Next</code> be different each time since no new instance of <code>rnd</code> is made for each iteration.</p>