title: Shuffle string array without duplicates
body: <p>I am using the Knuth-Fisher-Yates algorithm to display a shuffled array of string items on a windows form. I do not get any duplicates, which is what I was trying to achieve, however, it only spits out 12 of the 13 elements of the array. How can I get it to display all 13 elements of the array? Here is my code:</p>
  
  <pre><code>private void FormBlue1_Load(object sender, EventArgs e)
  {
  // set the forms borderstyle
  this.FormBorderStyle = FormBorderStyle.Fixed3D;
  
  // create array of stationOneParts to display on form
  string[] stationOneParts = new string[13];
  stationOneParts[0] = "20-packing";
  stationOneParts[1] = "5269-stempad";
  stationOneParts[2] = "5112-freeze plug";
  stationOneParts[3] = "2644-o'ring";
  stationOneParts[4] = "5347-stem";
  stationOneParts[5] = "4350-top packing";
  stationOneParts[6] = "5084-3n1 body";
  stationOneParts[7] = "4472-packing washer";
  stationOneParts[8] = "3744-vr valve o'ring";
  stationOneParts[9] = "2061-packing spring";
  stationOneParts[10] = "2037-packing nut";
  stationOneParts[11] = "2015-latch ring";
  stationOneParts[12] = "stem assembly";
  
  Random parts = new Random();
  
  // loop through stationOneParts using a Swap method to shuffle
  labelBlueOne.Text = "\n";
  for (int i = stationOneParts.Length - 1; i &gt; 0; i--)
  {
  int j = parts.Next(i + 1);
  Swap(ref stationOneParts[i], ref stationOneParts[j]);
  
  // display in a random order
  labelBlueOne.Text += stationOneParts[i] + "\n";
  }
  }
  
  private void Swap(ref string firstElement, ref string secondElement)
  {
  string temp = firstElement;
  firstElement = secondElement;
  secondElement = temp;
  }
  </code></pre>