- First of all, having an integer array for your dice is pointless because you need only one number which also means that you do not need a loop for it because it will never iterate for a second time.
- Secondly your random goes from zero to five included and you want it to be from 1 to 6.
Your code with a few edits:
var currentRoll = roll.Next(1, 7);
dice = currentRoll; // there should not be += operator because the result of the next roll will be absurd
dicePictureBox.Image = diceImages[currentRoll - 1]; // -1 because your array is zero-based which means that it starts from 0
That is how the random class really works. The initial value which in your case is 1, is included, but the one in the ending is not, so what you need is 1,7 because it will return a number between 1 and 6 included.