title: What does Math.random() * i | 0 mean?
body: <pre><code>var lst = [/*List of items*/];
  for (var i = 10; i &gt; 0; i--) {
      lst.appendChild(lst[Math.random() * i | 0]);
  }
  </code></pre>
  
  <p>Why would "|" be in a index? Does this function shuffle the list 'lst'?</p>