Generating unique ID for each sketch upload?

Here's the code in a crude, preliminary form. I snipped out a lot of irreevant code so I might have introduced a few errors, but I'm sure folks can figure it out.

static int boardIdBaseAddress = 0;
static int timer = 0;
static byte b5 = 0;
static byte b6 = 0;
static byte b7 = 0;
static byte b8 = 0;

unsigned long setupEeprom()
{
  byte b1 = EEPROM.read(boardIdBaseAddress);
  byte b2 = EEPROM.read(boardIdBaseAddress + 1);
  byte b3 = EEPROM.read(boardIdBaseAddress + 2);
  byte b4 = EEPROM.read(boardIdBaseAddress + 3);
  b5 = EEPROM.read(boardIdBaseAddress + 4);
  b6 = EEPROM.read(boardIdBaseAddress + 5);
  b7 = EEPROM.read(boardIdBaseAddress + 6);
  b8 = EEPROM.read(boardIdBaseAddress + 7);
  
  if ((b1 != 'A') || (b2 != 'P') || (b3 != 'P') || (b4 != '1') || ((b5 == 0xff) && (b6 == 0xff) && (b7 == 0xff) && (b8 == 0xff)))
  {
    b1 = 'A';
    b2 = 'P';
    b3 = 'P';
    b4 = '1';
    randomSeed(timer);
    b5 = random(256);
    b6 = random(256);
    b7 = random(256);
    b8 = random(256);
    EEPROM.write(boardIdBaseAddress, b1); 
    EEPROM.write(boardIdBaseAddress + 1, b2); 
    EEPROM.write(boardIdBaseAddress + 2, b3); 
    EEPROM.write(boardIdBaseAddress + 3, b4); 
    EEPROM.write(boardIdBaseAddress + 4, b5); 
    EEPROM.write(boardIdBaseAddress + 5, b6); 
    EEPROM.write(boardIdBaseAddress + 6, b7); 
    EEPROM.write(boardIdBaseAddress + 7, b8); 
  }
}

void loop()
{

  // ...

  if (computer_asks_for_ID)
  {
    setupEeprom();

    // ID will be in b5, b6, b7, b8
    send_to_computer(b5, b6, b7, b8);
  }

  // ...

  timer++;
}