Simple dice

I did a little research on seeding random number generators, and using electrical noise is not unusual. Check out random.org. That's valuable information.

If your code were rewritten with the case statement, it would look something like this:

switch(value)
{
case 1: // this means "this is the case where value == 1"
{
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
delay(val);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
}
case 2: // do this when value == 2
{
digitalWrite(led5, HIGH);
digitalWrite(led1, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(val);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}

etc
etc

default:
{
//whatever code you want to use if all the possibilities fail
}

The array approach would reduce the number of lines of code. With eight LEDs, I'd start thinking of a way to work in binary because I could represent any combination of LEDs on or off with one value, for example, zero would mean everyone is off, 255 would mean everyone is on, 42 would mean LEDs 2, 4 and six are on and the rest are off.