these themes bore me please adjust

private void GenerateRandomTheme(bool reapply = false)
{
    if (!reapply || _lastMainStart == Color.Empty)
    {
        var styles = Enum.GetValues(typeof(ThemeStyle)).Cast<ThemeStyle>().ToList();

        // Shuffle styles for better random distribution
        for (int i = styles.Count - 1; i > 0; i--)
        {
            int j = _rand.Next(i + 1);
            (styles[i], styles[j]) = (styles[j], styles[i]);
        }
        var style = styles[0];

        switch (style)
        {
            case ThemeStyle.Dreamscape:
                {
                    var colors = GenerateUniqueColorsDistinct(5, 0.3, 0.5, 0.4, 0.75);
                    for (int i = 0; i < colors.Count; i++)
                    {
                        double h, s, v;
                        ColorToHSV(colors[i], out h, out s, out v);
                        h = (h + 200 + i * 12) % 360;
                        s *= 0.8;
                        v *= 0.9;
                        colors[i] = ColorFromHSV(h, s, v);
                    }
                    _lastMainStart = colors[0];
                    _lastMainEnd = colors[1];
                    _lastAccentsStart = colors[2];
                    _lastAccentsEnd = colors[3];
                    _lastTextColor = colors[4].GetBrightness() < 0.5 ? Color.WhiteSmoke : Color.Black;
                }
                break;

            case ThemeStyle.Inferno:
                {
                    _lastMainStart = ColorFromHSV(_rand.Next(5, 15), 0.9, 0.3);
                    _lastMainEnd = ColorFromHSV(_rand.Next(15, 30), 1.0, 0.5);
                    _lastAccentsStart = ColorFromHSV(_rand.Next(25, 45), 1.0, 0.9);
                    _lastAccentsEnd = ColorFromHSV(_rand.Next(10, 25), 0.9, 0.7);
                    _lastTextColor = Color.FromArgb(255, 240, 230, 220);
                }
                break;

            case ThemeStyle.Frostbyte:
                {
                    _lastMainStart = ColorFromHSV(200, 0.15, 0.95);
                    _lastMainEnd = ColorFromHSV(210, 0.2, 0.85);
                    _lastAccentsStart = ColorFromHSV(185, 0.6, 1.0);
                    _lastAccentsEnd = ColorFromHSV(225, 0.6, 0.8);
                    _lastTextColor = Color.FromArgb(255, 240, 250, 255);
                }
                break;

            case ThemeStyle.AlienTech:
                {
                    _lastMainStart = ColorFromHSV(280, 0.9, 0.3);
                    _lastMainEnd = ColorFromHSV(300, 0.95, 0.6);
                    _lastAccentsStart = ColorFromHSV(100, 1.0, 0.85);
                    _lastAccentsEnd = ColorFromHSV(120, 1.0, 0.7);
                    _lastTextColor = Color.FromArgb(255, 180, 255, 180);
                }
                break;

            case ThemeStyle.Void:
                {
                    _lastMainStart = ColorFromHSV(250, 0.1, 0.04);
                    _lastMainEnd = ColorFromHSV(265, 0.12, 0.07);
                    _lastAccentsStart = ColorFromHSV(290, 0.5, 0.15);
                    _lastAccentsEnd = ColorFromHSV(280, 0.5, 0.2);
                    _lastTextColor = Color.White;
                }
                break;

            case ThemeStyle.Classic:
                {
                    _lastMainStart = ColorFromHSV(40, 0.4, 0.85);
                    _lastMainEnd = ColorFromHSV(45, 0.5, 0.95);
                    _lastAccentsStart = ColorFromHSV(160, 0.35, 0.75);
                    _lastAccentsEnd = ColorFromHSV(185, 0.35, 0.8);
                    _lastTextColor = ColorFromHSV(0, 0, 0.1);
                }
                break;

            case ThemeStyle.Vibrant:
                {
                    var bases = GenerateUniqueColorsDistinct(5, 0.85, 1.0, 0.6, 0.9);
                    _lastMainStart = bases[0];
                    _lastMainEnd = bases[1];
                    _lastAccentsStart = bases[2];
                    _lastAccentsEnd = bases[3];
                    _lastTextColor = bases[4].GetBrightness() < 0.5 ? Color.White : Color.Black;
                }
                break;

            case ThemeStyle.Epic:
                {
                    _lastMainStart = ColorFromHSV(_rand.Next(300, 330), 1.0, 0.2);
                    _lastMainEnd = ColorFromHSV(_rand.Next(30, 60), 1.0, 0.5);
                    _lastAccentsStart = ColorFromHSV(_rand.Next(180, 210), 1.0, 1.0);
                    _lastAccentsEnd = ColorFromHSV(_rand.Next(0, 360), 0.8, 0.75);
                    _lastTextColor = Color.WhiteSmoke;
                }
                break;

            case ThemeStyle.Neon:
                {
                    _lastMainStart = Color.Black;
                    _lastMainEnd = ColorFromHSV(SafeRandomRange(_rand, 280, 320), 0.95, 0.4);
                    _lastAccentsStart = ColorFromHSV(SafeRandomRange(_rand, 150, 190), 1.0, 1.0);
                    _lastAccentsEnd = ColorFromHSV(SafeRandomRange(_rand, 200, 240), 1.0, 0.8);
                    _lastTextColor = Color.White;
                }
                break;

            case ThemeStyle.Pastel:
                {
                    var pastels = GenerateUniqueColorsDistinct(5, 0.2, 0.4, 0.85, 1.0);
                    _lastMainStart = pastels[0];
                    _lastMainEnd = pastels[1];
                    _lastAccentsStart = pastels[2];
                    _lastAccentsEnd = pastels[3];
                    _lastTextColor = pastels[4].GetBrightness() > 0.7 ? Color.FromArgb(255, 50, 50, 50) : Color.WhiteSmoke;
                }
                break;

            case ThemeStyle.DarkGlow:
                {
                    var darks = GenerateUniqueColorsDistinct(4, 0.7, 1.0, 0.05, 0.2);
                    _lastMainStart = darks[0];
                    _lastMainEnd = darks[1];
                    _lastAccentsStart = darks[2];
                    _lastAccentsEnd = darks[3];
                    _lastTextColor = GenerateUniqueLightColorExcluding(darks);
                }
                break;

            case ThemeStyle.Oceanic:
                {
                    var ocean = GenerateUniqueColorsDistinct(5, 0.7, 0.9, 0.3, 0.7);
                    for (int i = 0; i < ocean.Count; i++)
                    {
                        double h, s, v;
                        ColorToHSV(ocean[i], out h, out s, out v);
                        h = (h + 180) % 360;
                        ocean[i] = ColorFromHSV(h, s, v);
                    }
                    _lastMainStart = ocean[0];
                    _lastMainEnd = ocean[1];
                    _lastAccentsStart = ocean[2];
                    _lastAccentsEnd = ocean[3];
                    _lastTextColor = ocean[4].GetBrightness() < 0.5 ? Color.White : Color.Black;
                }
                break;

            case ThemeStyle.Sunset:
                {
                    var sunset = GenerateUniqueColorsDistinct(5, 0.6, 0.9, 0.4, 0.7);
                    for (int i = 0; i < sunset.Count; i++)
                    {
                        double h, s, v;
                        ColorToHSV(sunset[i], out h, out s, out v);
                        h = (h + 25 + i * 5) % 60 + 10;
                        sunset[i] = ColorFromHSV(h, s, v);
                    }
                    _lastMainStart = sunset[0];
                    _lastMainEnd = sunset[1];
                    _lastAccentsStart = sunset[2];
                    _lastAccentsEnd = sunset[3];
                    _lastTextColor = sunset[4].GetBrightness() < 0.5 ? Color.White : Color.Black;
                }
                break;

            case ThemeStyle.Cyberpunk:
                {
                    var cyber = GenerateUniqueColorsDistinct(5, 0.8, 1.0, 0.1, 0.4);
                    double[] cyberHueTargets = { 280, 320, 200, 240, 300 };
                    for (int i = 0; i < cyberHueTargets.Length; i++)
                    {
                        double h, s, v;
                        ColorToHSV(cyber[i], out h, out s, out v);
                        h = cyberHueTargets[i];
                        cyber[i] = ColorFromHSV(h, s, v);
                    }
                    _lastMainStart = cyber[0];
                    _lastMainEnd = cyber[1];
                    _lastAccentsStart = cyber[2];
                    _lastAccentsEnd = cyber[3];
                    _lastTextColor = cyber[4].GetBrightness() < 0.5 ? Color.White : Color.Black;
                }
                break;

            case ThemeStyle.Forest:
                {
                    var forest = GenerateUniqueColorsDistinct(5, 0.5, 0.7, 0.25, 0.55);
                    for (int i = 0; i < forest.Count; i++)
                    {
                        double h, s, v;
                        ColorToHSV(forest[i], out h, out s, out v);
                        h = 90 + (i * 8);
                        forest[i] = ColorFromHSV(h, s, v);
                    }
                    _lastMainStart = forest[0];
                    _lastMainEnd = forest[1];
                    _lastAccentsStart = forest[2];
                    _lastAccentsEnd = forest[3];
                    _lastTextColor = forest[4].GetBrightness() > 0.7 ? Color.FromArgb(255, 20, 20, 20) : Color.White;
                }
                break;

            case ThemeStyle.TechnoWave:
                {
                    _lastMainStart = ColorFromHSV(_rand.Next(200, 240), 0.95, 0.1);
                    _lastMainEnd = ColorFromHSV(_rand.Next(220, 260), 0.95, 0.3);
                    _lastAccentsStart = ColorFromHSV(_rand.Next(280, 320), 0.9, 0.8);
                    _lastAccentsEnd = ColorFromHSV(_rand.Next(300, 340), 0.9, 0.9);
                    _lastTextColor = Color.White;
                }
                break;
        }

    }

    Theme(_lastMainStart, _lastMainEnd, _lastAccentsStart, _lastAccentsEnd, _lastTextColor);
}