Le plus trivial, c'est de faire un tableau contenant les possibilités (je crois qu'il y en a 56, mais c'est pas sûr). On prends une possibilité au hasard, et on l'affiche.
Pour 8 relais qui ont chacun 2 états, on peut l'écrire sur un octet. En binaire, cela peut faire par exemple 0b01001100 avec bit à 1 -> relais collé, bit à 0 -> relais décollé. Le tableau commence par exemple par
const uint8_t possibilites[56] = {
0b11100000,
0b11010000,
0b11001000,
0b11000100,
0b11000010,
0b11000001,
0b10110000,
0b10101000,
0b10100100,
0b10100010,
0b10100001,
0b10011000,
...
Pour avoir un état possible:
etat = possibilites[random(56)];
Pour changer l'état des relais:
for (uint8_t relay = 0; relay < 8; relay++)
{
if ((etat & (1 << relay)) > 0) digitalWrite(6 + relay, HIGH);
else digitalWrite(6 + relay, LOW);
}