Wie weet wat leuks om te maken?

Nog een vraagje (omdat het met dit projectje te maken heeft):

De delay functie. Als ik bv een functie aan maken welke een LED laat knipperen:

void randLed()
{
   iRandomNum = random(8, 11);
   
   digitalWrite(iRandomNum, HIGH);
   delay(500); 
}

En ik heb in de void loop nog andere code (functie) staan die checkt of een button wordt ingedrukt, dan werkt die delay ook op die functie.
Hoe zorg ik ervoor dat de delay werkt enkel in de functie (of een stuk code) waar ik hem voor wil gebruiken?

Hele code:

int ledRed = 8;
int ledGreen = 9;
int ledBlue = 10;
int buttonRed = 5;
int buttonGreen = 6;
int buttonBlue = 7;
int aRandom[] = {};
int iRandomNum = 0;

void setup()
{
   pinMode(ledRed, OUTPUT);
   pinMode(ledGreen, OUTPUT);
   pinMode(ledBlue, OUTPUT);
   pinMode(buttonRed, INPUT);
   pinMode(buttonGreen, INPUT);
   pinMode(buttonBlue, INPUT);
}

void pressButton(int button, int led)
{
   if(digitalRead(button) == HIGH) 
   {
      digitalWrite(led, HIGH); 
   }
   else
   {
      digitalWrite(led, LOW);   
   }
}

void randLed()
{
   iRandomNum = random(8, 11);
   
   digitalWrite(iRandomNum, HIGH);
   delay(500); 
}

void loop()
{
   pressButton(buttonRed, ledRed);
   pressButton(buttonGreen, ledGreen);
   pressButton(buttonBlue, ledBlue);
   
   randLed();
}