I have a loop that generates a random number between 0 and 5 and goes fetch a color in an array.
The first color is always yellow and I cannot figure out why.
var hexColors = new Array("#000000", "#FFFFFF", "#FF0000", "#0000FF", "#00FF00", "#FFFF00");
var nameColors = new Array("White", "Red", "Blue", "Black", "Green", "Yellow");
for (var i = 5; i >= 0; i--) {
  var hexColor = randomNum(i);
  var nameColor = randomNum(i);
  $('td:eq(' + i + ')').css("color", hexColors[hexColor]);
  $('td:eq(' + i + ')').html(nameColors[nameColor]);
  hexColors.splice($.inArray(hexColors[hexColor], hexColors), 1);
  nameColors.splice($.inArray(nameColors[nameColor], nameColors), 1);
}
function randomNum(max) {
  return Math.floor(Math.random() * max);
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
  </tr>
</table>I re-factored the loop so that it uses increments instead of i-- and it works but I'd still like to know why it doesn't work the other way around.
 
     
     
     
     
    