Three 74HC4067 16:1 analog switches( one each for R,G and B), with as many groups of three presets as you want different colours, rigged as potential dividers, each group feeding R,G and B control voltages to the Yn'th 'way' of the corresponding analog switch, with their Z (common) terminals feeding voltage controlled PWM generators driving low Vgs threshold MOSFETs for R, G and B.
If you don't want full coulourspace analog RGB, omit the PWM generators and replace the pots with DIP switches + pullup resistors.
In either case, you need logic to select the desired colour by applying a 4 bit binary number to the S3:S0 address pins of the '4067 chips (in parallel). This could be a counter, either clocked by an oscillator if you want it to change automatically, or by a pushbutton. If you want a button that changes to a different set of colours when held, wire it direct to all the S3 pins with a pullup resistor.
However it would be a whole lot easier using a 3.3V 8MHz Arduino Pro Mini, with three PWM outputs controlling the MOSFETs, three pots fro R G and B level, and a few buttons to control storing and playing a colour sequence