title: Initializing ThreadStatic field still causes NullReferenceException
body: <p>I've written myself a multi-threaded random generator</p>
  
  <pre><code>public static class MyRandGen
  {
      private static Random GlobalRandom = new Random();
      [ThreadStatic]
      private static Random ThreadRandom = new Random(SeedInitializer());
      private static int SeedInitializer()
      {
          lock (GlobalRandom) return GlobalRandom.Next();
      }
  
      public static int Next()
      {
          return ThreadRandom.Next();
      }
  }
  </code></pre>
  
  <p>However, it throws me a NullReferenceException on firing Next(), which I don't understand. Is that kind of initializing ThreadStatic fields forbidden somehow?</p>
  
  <p>I know I could just check if the field's initialized every time, but that's not the solution I'm looking for.</p>