Charlieplexing

Hello again!

I've finally got round to buying some LEDs and running the code. It
works nicely, but it is a bit boring. As a result, I had the LED select
chosen by a random number. This did not seem to be random though,
so I went onto random.org to create some true random number
strings. I then used these as the LED select numbers. This makes it
completely un-random, or pre selected, but it seems quite the opposite.

The new code is here:

int number;
int position = 0;
char sequence[] = {5,4,2,6,3,1,6,5,3,2,4,1,6,5,4,1,3,2,4,5,3,6,2,1,4,2,6,3,5,1,1,4,3,2,5,6,4,1,5,6,2,3,0};

void setup(){}

void loop(){
  number = sequence[position];
  if(number == false){
    position = 0;
    number = sequence[position];
  }
  
   pinMode(4, OUTPUT);
   pinMode(3, OUTPUT);
   pinMode(2, OUTPUT);
    digitalWrite(2, LOW);      //turn all the pins low
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
      
    switch(number){      //turn on the correct pins for the LED selected:
    
      case 1:
      pinMode(2, INPUT);
      pinMode(3, OUTPUT);
      pinMode(4, OUTPUT);
      digitalWrite(3, LOW);
      digitalWrite(4, HIGH);
      break;
      
      case 2:
      pinMode(2, INPUT);
      pinMode(3, OUTPUT);
      pinMode(4, OUTPUT);
      digitalWrite(3, HIGH);
      digitalWrite(4, LOW);
      break;
      
      case 3:
      pinMode(3, INPUT);
      pinMode(2, OUTPUT);
      pinMode(4, OUTPUT);
      digitalWrite(2, HIGH);
      digitalWrite(4, LOW);
      break;
      
      case 4:
      pinMode(3, INPUT);
      pinMode(2, OUTPUT);
      pinMode(4, OUTPUT);
      digitalWrite(4, HIGH);
      digitalWrite(2, LOW);
      break;
      
      case 5:
      pinMode(4, INPUT);
      pinMode(3, OUTPUT);
      pinMode(2, OUTPUT);
      digitalWrite(2, HIGH);
      digitalWrite(3, LOW);
      break;
      
      case 6:
      pinMode(4, INPUT);
      pinMode(3, OUTPUT);
      pinMode(2, OUTPUT);
      digitalWrite(3, HIGH);
      digitalWrite(2, LOW);
      break;
      
      default:
      break;
    } 
    delay(100);
    position++;
}

And some pictures...

Plus a video (if it works):

Although it looks bad in the video, it is due to the poor video quality of my camera.
Onions.