La prima idea che mi viene in mente, moooolto basilare, poco utile, è tentare di usare numeri complementari tra loro sulla base del 255 massimo.
Provo a spiegarmi perché non ho idea di quello che ho scritto
(non precisa, perlomeno).
Parto dall'idea che il massimo del contrasto, tra bianco e nero, è: 255,255,255 e 0,0,0.
Beh, dovrei ragionarci di molto di più, ma la partenza dovrebbe essere quella, + i colori base 255,0,0 - 0,255,0 - 0,0,255.
Eseguendo step di un x (hai solo 18 label, diciamo 36 colori, compresi sfondo e testo, quindi questo x potrebbe essere grande, 25 almeno, direi)...
Beh, questo è il mio spunto. Poi magari ci pensiamo entrambi (o chiunque ne abbia voglia).
Il guaio è che si dovrebbe tenere in considerazione anche il daltonismo!