#define NUM_OUTPUTS 5

int outputs[NUM_OUTPUTS] = { 2, 3, 4, 5, 6 };
bool used[NUM_OUTPUTS] = { false };

int main(void) {
  // Configura todas as saídas como saídas
  for (int i = 0; i < NUM_OUTPUTS; i++) {
    pinMode(outputs[i], OUTPUT);
  }
  
  randomSeed(analogRead(A0));
  
  while (true) {
    // Sorteia uma saída
    int index = random(NUM_OUTPUTS);
    
    // Verifica se a saída já foi usada
    if (used[index]) {
      // Se sim, sorteia novamente
      continue;
    }
    
    // Marca a saída como usada
    used[index] = true;
    
    // Acende o LED na saída sorteada
    digitalWrite(outputs[index], HIGH);
    
    // Espera 1 segundo
    delay(1000);
    
    // Apaga o LED na saída sorteada
    // digitalWrite(outputs[index], LOW);
    
    // Verifica se todas as saídas foram usadas
    bool all_used = true;
  
    for (int i = 0; i < NUM_OUTPUTS; i++) {
      if (!used[i]) {
        all_used = false;
        break;
      }
    }
  }
}