Как преобразовать RGB в 1 из 24 цветов?
Самый простой способ - вычислить расстояние вашего цвета до каждого из 24 и выбрать ближайший.
Ну что-то вроде Number Distance (Color source, Color target) {
  const dRed   = Math.Abs(target.r - source.r);
  const dGreen = Math.Abs(target.g - source.g);
  const dBlue  = Math.Abs(target.b - source.b);

  return dRed + dGreen + dBlue;
}
Я бы начал с этого и посмотрел, куда оно меня приведет
Поскольку этот ряд из 24 цветов не упорядочен по какому-либо параметру и содержит цвета, которые имеют случайные расстояния между ними в любом из основных цветовых пространств, написать функцию, которая бы математически приводила 24-битные цвета к этой палитре - нельзя. Можно только найти и захардкодить lookup table, либо каждый раз считать расстояние. Декартово (как вам посоветовали в соседнем ответе) или перцептивное (тогда нужно, например, переводить все в цветовое пространство, которое учитывает восприятие человека, и считать в нем).