title: Random pairs without repeats in Python (numpy or itertools)
body: <p>I have a list of people and want to generate a number of random pairs or triplets so that every person in the list belongs to exactly one pair or triplet (no more, no less).</p>
  <p>Example:</p>
  <pre class="lang-py prettyprint-override"><code>&gt;&gt;&gt; people = [&quot;John&quot;, &quot;Paul&quot;, &quot;George&quot;, &quot;Ringo&quot;, &quot;David&quot;, &quot;Roger&quot;, &quot;Richard&quot;, &quot;Nick&quot;, &quot;Syd&quot;]
  
  &gt;&gt;&gt; generate_random_pairs(people)
  
  [
      (&quot;John&quot;, &quot;George&quot;),
      (&quot;Paul&quot;, &quot;David&quot;),
      (&quot;Roger&quot;, &quot;Nick&quot;),
      (&quot;Ringo&quot;, &quot;Richard&quot;, &quot;Syd&quot;)
  ]
  </code></pre>
  <p>I've tried different ideas using <code>numpy.random.choice</code>, <code>numpy.random.sample</code> or <code>itertools.permutations</code> but none of them seem to work.</p>