My led program is pooring, give me an idea of good LED blinker

My LED blinker works well in the balcony now, but there is nothing special in the sketch. Random LEDs for random time. I want to make it better. Fading has suggested and that is a good idea, but there is sure even more interesting way to blink LEDS.

My LEDs were connected to my own 328 PCB. The PCB was made for other purposes, so I used pins which were easiest to use.

/*Begining of Auto generated code by Atmel studio */
#include <Arduino.h>
int Pin0 = A0;
int Pin1 = A1;
int Pin2 = A2;
int Pin3 = A3;
int Pin4 = A4;
int Pin5 = A5;
int Pin6 = 4;  //PD4, piikki 6
int Pin7 = 9;  //PB1, piikki 15
long arpa;
//byte bitit;
void ledjut(long);
void viive(long );
void setup() {
  // put your setup code here, to run once:
pinMode(Pin0, OUTPUT); 
pinMode(Pin1, OUTPUT); 
pinMode(Pin2, OUTPUT); 
pinMode(Pin3, OUTPUT); 
pinMode(Pin4, OUTPUT); 
pinMode(Pin5, OUTPUT); 
pinMode(Pin6, OUTPUT); 
pinMode(Pin7, OUTPUT); 

digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, HIGH);
digitalWrite(Pin5, HIGH);
digitalWrite(Pin6, HIGH);
digitalWrite(Pin7, HIGH);

randomSeed(analogRead(0));

}

void loop() {
  // put your main code here, to run repeatedly:
arpa=random(255);
ledjut(arpa);
arpa=random(20);
viive(arpa);

}
void ledjut(long luku)
{

if (bitRead(luku, 0)==1)
{
	digitalWrite(Pin0, HIGH);
}
else
{
digitalWrite(Pin0, LOW);	
}

if (bitRead(luku, 1)==1)
{
	digitalWrite(Pin1, HIGH);
}
else
{
	digitalWrite(Pin1, LOW);
}

if (bitRead(luku, 2)==1)
{
	digitalWrite(Pin2, HIGH);
}
else
{
	digitalWrite(Pin2, LOW);
}

if (bitRead(luku, 3)==1)
{
	digitalWrite(Pin3, HIGH);
}
else
{
	digitalWrite(Pin3, LOW);
}

if (bitRead(luku, 4)==1)
{
	digitalWrite(Pin4, HIGH);
}
else
{
	digitalWrite(Pin4, LOW);
}

if (bitRead(luku, 5)==1)
{
	digitalWrite(Pin5, HIGH);
}
else
{
	digitalWrite(Pin5, LOW);
}

if (bitRead(luku, 6)==1)
{
	digitalWrite(Pin6, HIGH);
}
else
{
	digitalWrite(Pin6, LOW);
}

if (bitRead(luku, 7)==1)
{
	digitalWrite(Pin7, HIGH);
}
else
{
	digitalWrite(Pin7, LOW);
}

}
void viive(long viivel)
{
	while (viivel!=0)
	{
		delay(50);
		viivel--;
	} 
	
}

but there is sure even more interesting way to blink LEDS.

Well first I would look at learning to code correctly. The use of arrays as a pin look up and the use of for loops will shave many many lines off that code.

Then you can implement things as a state machine and get rid of any delay:-
See my
http://www.thebox.myzen.co.uk/Tutorial/State_Machine.html
Or Robin2's several things at once
http://forum.arduino.cc/index.php?topic=223286.0

Finally how about forgetting random and using patterns, again driven by data stored in an array.

Yes, in Random blink - Programming Questions - Arduino Forum people told me better ways to do this simple blinker.

But what about the pattern? The end result?