One of the built-in color palettes in Okular is "Oxygen Colors". Looking at subsequent HSV/RGB/HEX values I didn't notice an obvious pattern. I was wondering what is the underlying pattern in this palette (for example such that I could generate it using a loop instead of hard coding).
This looks like it is a series of ramps of six colours each, with a logical progression in HSB: Hue, Saturation, Brightness.
Each ramp's Hue is practically constant. In general, within each ramp, the Saturation decreases and the Brightness increases along the ramp. These numbers will not be identical from one Hue to another, as colours tend to have different Value ('lightness'). Blue has a low Value as opposed to Yellow.
If you are wondering about how the Hues of the different ramps relate, I'd guess they are mostly randomly chosen with the only guiding principle 'let's choose the next Hue to be something we haven't seen yet'—with some ramps still coming out extremely similar.
There is quite some confusion between the HSB (Hue-Saturation-Brightness) and HSV (Hue-Saturation-Value) models, compounded with the fact that people tend to incorrectly use the terms 'Value', 'Brightness' and 'Lightness' interchangeably. I have to admit that I don't know the fine points myself, that is why I tend to stick to HSB. If you want to know the fine points, have a look at this Wikipedia article on the subject.