title: Swapping range of random elements in lists with list comprehension
body: <p>I have to pick a N number of elements from a list randomly, remove them from the list and add them to another one. My approach so far is something like this:</p>
  
  <pre><code>import random
  
  x = ['a','b','c','d','e','f','g']
  y = []
  for v in reversed(list(x)):
    z = x.pop(x.index(random.choice(x)))
    y.append(z)
  </code></pre>
  
  <p>which outputs:</p>
  
  <pre><code>['a', 'b', 'c', 'd', 'e', 'f', 'g']
  ['a', 'b', 'c', 'd', 'f', 'g']
  ['a', 'b', 'c', 'd', 'g']
  ['b', 'c', 'd', 'g']
  ['b', 'c', 'g']
  ['c', 'g']
  ['g']
  ['e', 'f', 'a', 'd', 'b', 'c', 'g']
  </code></pre>
  
  <p>is there a way to write this using list comprehensions? It's going beyond my comprehension.</p>
  
  <p>The original list does not end shuffled, it just has the choosen elements removed.</p>