title: Parallel.For and For yield different results
body: <p>If I run this test:</p>
  
  <pre><code> var r = new Random();
   var ints = new int[13];
   Parallel.For(0, 2000000, i =&gt; {            
       var result = r.Next(1, 7) + r.Next(1, 7);
       ints[result] += 1;
   });
  </code></pre>
  
  <p>I get the following result:</p>
  
  <pre><code>2: 92,14445
  3: 0,41765
  4: 0,62245
  5: 0,82525
  6: 1,04035
  7: 1,25215
  8: 1,0531
  9: 0,8341
  10: 0,6334
  11: 0,4192
  12: 0,2109
  </code></pre>
  
  <p>When I use the regular For:</p>
  
  <pre><code>for (int i = 0; i &lt; 2000000; i++) {
      var result = r.Next(1, 7) + r.Next(1, 7);
      ints[result] += 1;
  }
  </code></pre>
  
  <p>The output is:</p>
  
  <pre><code>2: 2,7797
  3: 5,58645
  4: 8,3414
  5: 11,09935
  6: 13,8909
  7: 16,6731
  8: 13,82895
  9: 11,10205
  10: 8,3424
  11: 5,5712
  12: 2,7845
  </code></pre>
  
  <p>The last result is a Triangular Distribution and it is the expected output.</p>
  
  <p>The purpose of my question is not to discuss the applicability of parallelism. The question is why the Parallel.For behaves that way?</p>