Currently, genetics in populations like the dwarves tends to produce a pretty silly uniformity of genetic traits. Every single one of my dwarves in the last embark had burnt umber hair, amethyst eyes, and peach skin. It's like some eugenics program went wild around the year 100. It makes the whole system a little off and weird when everyone is exactly identical based upon the genetic dominance of any color that happens to get lucky in being picked from a random pool.
Instead, I think there's a fairly simple solution to this fairly minor problem: Copy from real life, and give each character two "genes" for any genetic trait they have. One dominant, and one recessive. Hide the recessive one. Then, flip a coin when that character breeds, and passes their genes on, passing either their dominant or recessive gene onto the child, mixing with the other parent's gene they are passing on.
The two genes from both parents then compete for which one gets to be the dominant, and this could either take the form of making certain genes have dominance, having another coin toss, or having a "weight" on certain traits. For example, if burnt umber hair color has a weight of 5 in the raws, while sandy taupe has a weight of 2, then burnt umber has a 2.5 times greater chance of becoming dominant.
Doing this, we shouldn't have the almost-certain total domination of one single lucky hair color that got a virtually unbeatable early advantage in worldgen. It also shoulnd't affect much except the amount of time spent in worldgen, which is kind of long already, but shouldn't have a terrible impact on one-time world generation length.