title: Python very slow random sampling over big list
body: <p>I'm expecting very slow performance with the algorithm below.
  I've a very large (1.000.000+) list containing large strings.</p>
  
  <p>ie: <code>id_list = ['MYSUPERLARGEID:1123:123123', 'MYSUPERLARGEID:1123:134534389', 'MYSUPERLARGEID:1123:12763']...</code></p>
  
  <p><code>num_reads</code> is the max number of elements to random choose from this list.
  The idea is to randomly choose one of the string ids in <code>id_list</code> until <code>num_reads</code> is reached and to add (I say add, and not append because I don't care on <code>random_id_list</code> order) them into <code>random_id_list</code> which is empty at the beginning.</p>
  
  <p>I can't repeat same id so I remove it from the original list after being randonly chosen. I suspect this is what is doing the script to go real slow.. maybe I'm wrong and it's another part of this loop the responsible of slow behavior.</p>
  
  <pre><code>for x in xrange(0, num_reads):
      id_index, id_string = random.choice(list(enumerate(id_list)))
      random_id_list.append(id_string)
      del read_id_list[id_index]
  </code></pre>