I can't reproduce this. For the time when this happens again, I'm interested in the output of these command when the colors are normal and again when the colors have changed:

1. Be in enough channels so that your $ial is large enough that there's a good chance that all colors in the random palette will be assigned to at least 1 nick. Probably minimum 500 should be sufficient, based on this estimate:
//echo -a $calc(100*(1-(63/64)^500)) $+ %
2. Save the output of this command when colors are normal:

//var %ch $chan(0) , %a | while (%ch) { var %chan $chan(%ch), %i $nick(%chan,0) | while (%i) { var %a $addtok(%a,$nick(%chan,%i).color,32) | dec %i } | dec %ch } | echo -ag nicks: $ial(*,0) palettesize: $numtok(%a,32) $regsubex(background: $color(background) : $sorttok(%a,32,n),/(\d+)/g,\t $+ : $+ $base($color(\t),10,16,6))

3. Repeat #2 when colors have changed.

4. If you have any other color rules in 'nick colors', and if the random color rule is not the topmost one, this shows which other colors in the above palette list might be in the palette due to a different rule, so it helps to see the result from this:

//var %i 1 , %a | while (%i <= $cnick(0)) { var %a %a $cnick(%i).color $cnick(%i).auto | inc %i } | echo -a %a

The outputs are useless unless there's a pair of outputs from when colors are normal vs when they've changed, so don't send unless you have a pair from when colors are normal/changed.

I'm curious if the palette is staying the same but colors for each nick are changing, or whether the palette is changing to have a different group of colors.