Нелегко иметь 32 цвета, которые действительно выглядят уникально. Особенно, если все, что вы хотите сделать, это изменить оттенок, вы можете увидеть здесь 32 цвета, меняющие только оттенок

const hsl = (h, s, l) => `hsl(${h * 360 | 0},${s * 100}%,${l * 100}%)`;
for (let i = 0; i < 32; ++i) {
const div = document.createElement('div');
div.style.background = hsl(i / 32, 1, 0.5);
div.className = 'b';
document.body.appendChild(div);
}
.b {
width: 32px;
height: 32px;
display: inline-block;
}
Вы можете попробовать использовать другое цветовое пространство, например HCL, но это не менее проблематично c

for (let i = 0; i < 32; ++i) {
const div = document.createElement('div');
div.style.background = chroma.hcl(i / 32 * 360, 80, 70).css();
div.className = 'b';
document.body.appendChild(div);
}
.b {
width: 32px;
height: 32px;
display: inline-block;
}
<script src="https://cdn.jsdelivr.net/npm/chroma-js@2.1.0/chroma.min.js"></script>
Я бы посоветовал вам подумать об изменении яркости. Например, 16 светлых цветов и 16 темных цветов
Но больше я бы посоветовал, что бы вы ни делали, подумайте о добавлении узоров. Например, плоскость, клетка, вертикальные полосы, горизонтальные полосы, диагональные полосы, ромбы, и т.д. c ...

Или символы ♠ ️ ♦ ️ ♣ ️ ♥ ◾️ ● ▲ et c ..
Что касается выбора цветов с наибольшим расстоянием, вы можете поменять местами биты int, но вам нужно выбрать диапазон заранее. Например, если мы выберем диапазон от 0 до 255 (8 бит), то, поменяв местами биты, первые 2 элемента будут на максимальном расстоянии друг от друга. (0 и 128). Следующие 2 будут максимальным расстоянием между этими 2 (64 и 192). Следующие 4 будут максимальным значением между каждым из этих (32, 96, 160, 224), et c ...
См. this