Simple dice

UPDATE:
Chilinski's way doesnt work for some reason it just rolls a number then displays it and every number after it E.g:
It rolls a 2 (pc says so) so it displays;
2
3
4
5
6
7
8
9
10
11
12.

What gone wrong?
here is my current code:

int value = 1;
int val = 900;
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int led6 = 7;
int led7 = 8;
int led8 = 9;
void setup()
{
  randomSeed(analogRead(0)); //Random
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);
  pinMode(led5,OUTPUT);
  pinMode(led6,OUTPUT);
  pinMode(led7,OUTPUT);
  pinMode(led8,OUTPUT);
}

void loop()
{
  value = random(1, 13); //range for dice add one to the second number as it doesnt include it
  Serial.print(value); // print the number to pc as well for debugging
  Serial.print("  "); //adds double space to output to pc (neatness)
  
  switch(value)
{
case 1:       // this means "this is the case where value == 1"
 {
 digitalWrite(led2, HIGH);
   digitalWrite(led3, HIGH);
   delay(val);
   digitalWrite(led2, LOW);
   digitalWrite(led3, 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(led5, LOW);
   digitalWrite(led6, LOW);
   digitalWrite(led3, LOW);
   digitalWrite(led4, LOW);
 }
case 3:
  {
    digitalWrite(led1, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led6, HIGH);
    digitalWrite(led7, HIGH);
    digitalWrite(led4, 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 4:
  {
    digitalWrite(led2, HIGH); 
    digitalWrite(led6, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led7, 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 5:
  {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led6, HIGH);
    digitalWrite(led7, HIGH);  
    digitalWrite(led4, 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 6:
  {
    digitalWrite(led6, HIGH); 
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led7, HIGH);
    digitalWrite(led4, 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 7:{
    digitalWrite(led1, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led7, 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 8:
 {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led6, HIGH);
    digitalWrite(led7, 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 9:
  {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led6, HIGH);
    digitalWrite(led7, 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 10:
{
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led8, HIGH);
    delay(200);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    delay(val);
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led7, HIGH);
    delay(val);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led8, LOW);
    digitalWrite(led7, LOW);
  }

  case 11:
  {
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH); 
    digitalWrite(led8, HIGH);
    delay(200);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);  
    delay(val);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH); 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led8, LOW);
  }

case 12:
{
    digitalWrite(led2, HIGH);
    digitalWrite(led8, HIGH);
    digitalWrite(led3, HIGH);  
    delay(200);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);  
    delay(val);
    digitalWrite(led5, HIGH);
    digitalWrite(led1, HIGH);
    digitalWrite(led6, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    delay(val);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led8, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
  } //end of specs
}
  // check if data has been sent from the computer
  if (Serial.available()) {
    val = Serial.read();
  }


}