random blinking without delay and blinking with delay in 1

Hi there again! Weekend time, so picked up the arduino work again. Thanks again for your feedback and codes. I went through my code and did some cleanup and changed some namings to be inlign and also for me to understand which led is doing what.
It still works how I want it to work, so I am happy :slight_smile:

/* Multiple independent blinking LED
 This scetch was build with help of many forum members and contains 3 ways of blinking leds, for example used for Firetrucks in Netherlands, Germany etc
 Led 1+2 are representing normal beacon who have an different interval so prevent a standard left right.
 Led 3+4 are representing blinkers that simultaneously flash 3 times short and wait, this can be used for blinkers in the grill
 Led 4+5 are representing blinkers that flash at a random speed and interval
*/

// Which pins are connected to which LED
const byte led1zw = 2;
const byte led2zw = 3 ;
const byte led3k = 4 ;
const byte led4k = 5;
const byte led5kr = 6 ;
const byte led6kr = 7;

// Time periods of blinks in milliseconds (1000 milliseconds to a second).
// Time variable and constants are always unsigned long
const unsigned long led1zwinterval = 300UL ;
const unsigned long led2zwinterval = 275UL ;
unsigned long previousMillis;
unsigned long previousMillisrandom;
unsigned long previousMillisrandom1;
unsigned long intervalblinkrandom = 200UL;   // not a constant, it will be changed
unsigned long intervalblinkrandom1 = 200UL;   // not a constant, it will be changed
unsigned long currentMillis = millis();
const long periods[] = {50, 50, 50, 50, 50, 50, 1000, 0};
byte index;

// Variable holding the timer value so far. One for each "Timer"
unsigned long led1zwtimer = 0 ;
unsigned long led2zwtimer = 0 ;
unsigned long led3ktimer = 0 ;
unsigned long led4_5ktimer = 0 ;
unsigned long led6krtimer = 0 ;

// Variable to know what the current LED state is
int led1zwState = LOW ;
int led2zwState = LOW ;
int led3kState = LOW ;
int led4kState = LOW ;
int led5krState = LOW ;
int led6krState = LOW ;

void setup() {
 pinMode (led1zw, OUTPUT) ;
 pinMode (led2zw, OUTPUT) ;
 pinMode (led3k, OUTPUT) ;
 pinMode (led4k, OUTPUT) ;
 pinMode (led5kr, OUTPUT) ;
 pinMode (led6kr, OUTPUT) ;
 led1zwtimer = millis () ;
 led2zwtimer = millis () ;
 led3ktimer = millis () ;
 led4_5ktimer = millis () ;
 led6krtimer = millis () ;
}

void loop()
{
 unsigned long currentMillis = millis();
 if ( (millis () - led1zwtimer) >= led1zwinterval ) {
   digitalWrite(led1zw, !digitalRead(led1zw));
   led1zwtimer = millis () ;
 }
 if ( (millis () - led2zwtimer) >= led2zwinterval ) {
   digitalWrite(led2zw, !digitalRead(led2zw));
   led2zwtimer = millis ()  ;
 }
 if (millis() - led4_5ktimer >= periods[index])
 {
   digitalWrite(led3k, !digitalRead(led3k));
   digitalWrite(led4k, !digitalRead(led4k));
   index = ++index % 8;
   led4_5ktimer = millis();
 }
 if ( currentMillis - previousMillisrandom >= intervalblinkrandom)
 {
   previousMillisrandom = currentMillis;
   intervalblinkrandom = random( 25, 300);
   digitalWrite( led5kr, digitalRead( led5kr) == HIGH ? LOW : HIGH);
 }
 if ( currentMillis - previousMillisrandom1 >= intervalblinkrandom1)
 {
   previousMillisrandom1 = currentMillis;
   intervalblinkrandom1 = random( 50, 275);
   digitalWrite( led6kr, digitalRead( led6kr) == HIGH ? LOW : HIGH);
 }
}