Cannot correctly access element in array when given index
You can't access arrays that are in PROGMEM as if they were normal variables. The compiler can't tell the difference and just interprets it as a RAM address, which is wrong.

Instead you have to use pgm_read_byte to get the data:

char characterBuffer = pgm_read_byte(alphabet + correctIndex);