title: Random number from a seed
body: <p>I have an application where it becomes extremely noticeable if my program uses an RNG that has patterns based on its seed, as it builds landscapes based on the x coordinate of the landscape. While <code>Random</code> works well if you're calling <code>Next()</code> every time, I need to be able to have the same output every time I use the same input, and thus can't rely on <code>Next()</code>. Instead, I attempted to simply make a new <code>Random</code> every time with the input seed. Not a very good idea, I know, and it showed. The patterns were extremely obvious, with alternating high and low values, and an noticeable overall trend across the entire landscape. I'd prefer not to be making new generators every time, but even so, I looked into the cryptographically secure <code>RandomNumberGenerator</code> to see if I could at least use it temporarily. As expected, though, I can't seed it, leaving me without any sort of reproducible output (which is rather the point of the <code>RandomNumberGenerator</code>). </p>
  
  <p>In short, neither of the two common RNGs appear to suit my purpose. I need to be able to take in a a number and return a random number based on that value without noticeable patterns in the output. Is there another way to use the above two, or is there a third I haven't used before that would better suit my purpose?</p>
  
  <p>For clarity, the method I'm trying to write looks like so:</p>
  
  <pre><code>public int RandomInt(int input)
  {
      int randomOutput;
      //Be random
      return randomOutput;
  }
  </code></pre>
  
  <p>That will return the same value every time the same <code>input</code> is given.</p>