Generating Unique Colors
You don't need the constructor, as it's empty.

You're taking red as the low bits and blue as the high bits, which is backwards. 

You appear to be using System.Drawing and not System.Windows.Media, judging by the overloads. If so, there is an overload that takes an int:

public class UniqueColorGenerator
{
    private int _colorIndex;

    public Color Next()
    {
        return Color.FromArgb(++_colorIndex);
    }
}


You also wouldn't need to use &amp;, as casting to a byte will cut off the upper bits. 

return Color.FromArgb(
    (byte)(_colorIndex &gt;&gt; 24), 
    (byte)(_colorIndex &gt;&gt; 16), 
    (byte)(_colorIndex &gt;&gt; 8), 
    (byte)_colorIndex);