Am I trying to use a variable or pass a value by reference or by value?

Downwardflight:
Oh, ok, I was under the impression This: ...
...was implementing the clouds.

yes, but we haven't yet affected the LEDs.

you could try something like this, which modifies the current led setting during the cloud event...

void cloud(void)
{
  led.setTarget(255 - random(50, 100)); // some random but noticeable amount
  Serial.println(F("Cloud"));
  digitalWrite(13, LOW);
}

void nocloud(void)
{
  led.setTarget(255);  // return to full brightness
  Serial.println(F("No Cloud"));
  digitalWrite(13, HIGH);
  setNextCloud();
}

void setNextCloud(void)
{
  if(sunRiseSunSet.isActive() and led.read() == 255) . // to avoid clouds during sunrise and sunset
  {
    Serial.println(F("another cloud coming"));
    time_t now = DailyTimer::tmConvert_t(year(), month(), day(), hour(), minute(), second());
    time_t nextCloudStart = now + random(60, CLOUD_INTERVAL);
    time_t nextCloudEnd = nextCloudStart + random(60, CLOUD_DURATION);
    char buffer[32];
    sprintf(buffer, "Start %02d:%02d End %02d:%02d", hour(nextCloudStart), minute(nextCloudStart), hour(nextCloudEnd) , minute(nextCloudEnd));
    Serial.println(buffer);
    randomCloud.setStartTime(hour(nextCloudStart), minute(nextCloudStart));
    randomCloud.setEndTime(hour(nextCloudEnd) , minute(nextCloudEnd));
    randomCloud.begin();
  }
}