See the code in action on Tinkercad
/* Created by Alain Martel */ //#include <LiquidCrystal.h> //LiquidCrystal lcd(12, 11, 5, 4, 3, 2); #define ArrayElements(array) ((sizeof array / sizeof array[0])) uint8_t wires[] = {B1000, B0100, B0010, B0001}; const uint8_t countWires = ArrayElements(wires); uint8_t wireDisarm; uint8_t wireDisarmBIN; uint8_t wireExplode; uint8_t wireExplodeBIN; uint8_t wireFaster; uint8_t wireFasterBIN; uint8_t wireSlower; uint8_t wireSlowerBIN; void setup() { Serial.begin(9600); // lcd.begin(16, 2); } void loop() { randomWireGen(); Serial.print(wireDisarmBIN); Serial.print(wireExplodeBIN); Serial.print(wireFasterBIN); Serial.println(wireSlowerBIN); Serial.print(wireDisarm); Serial.print(wireExplode); Serial.print(wireFaster); Serial.println(wireSlower); Serial.println("----"); delay(5000); // lcd.clear(); } void randomWireGen() { scrambleArray(wires, countWires); for (uint8_t fCounter = 0; fCounter < countWires; fCounter++) { // Serial.print(wires[i]); if (fCounter == 0) { wireDisarmBIN = wires[0]; wireDisarm = wireNumber(wireDisarmBIN); } if (fCounter == 1) { wireExplodeBIN = wires[1]; wireExplode = wireNumber(wireExplodeBIN); } if (fCounter == 2) { wireFasterBIN = wires[2]; wireFaster = wireNumber(wireFasterBIN); } if (fCounter == 3) { wireSlowerBIN = wires[3]; wireSlower = wireNumber(wireSlowerBIN); } } //Serial.println(""); } void scrambleArray(uint8_t * array, uint8_t size) { randomSeed(analogRead(A0)); uint8_t last = 0; uint8_t temp = array[last]; for (uint8_t fCounter = 0; fCounter < size; fCounter++) { uint8_t index = random(size); array[last] = array[index]; last = index; } array[last] = temp; } uint8_t wireNumber(uint8_t binValue) { uint8_t wirePossition; if(binValue == 8) wirePossition = 4; if(binValue == 4) wirePossition = 3; if(binValue == 2) wirePossition = 2; if(binValue == 1) wirePossition = 1; return wirePossition; }