title: Algorithm for generating a random number
body: <p>I'm looking to generate a random number and issue it to a table in a database for a particular user_id. The catch is, the same number can't be used twice. There's a million ways to do this, but I'm hoping someone very keen on algorithms has a clever way of solving the problem in an elegant solution in that the following criteria is met:</p>
  
  <p>1) The least amount of queries to the database are made.
  2) The least amount of crawling through a data structure in memory is made.</p>
  
  <p>Essentially the idea is to do the following</p>
  
  <p>1) Create a random number from 0 to 9999999<br>
  2) Check the database to see if the number exists<br>
      OR<br>
  2) Query the database for all numbers<br>
  3) See if the returned result matches whatever came from the db<br>
  4) If it matches, repeat step 1, if not, problem is solved.  </p>
  
  <p>Thanks.</p>