def METHOD_NAME(colors_needed: int) -> typing.List[RGB]:
    colors = []
    # colors_needed +1 to prevent first and last color being too close to each other
    colors_needed += 1
    for x in range(0, 361, 360 // colors_needed):
        # a bit of noise on value to add some luminosity difference
        colors.append(RGB(*(val * 255 for val in hsv_to_rgb(x / 360, 0.8, 0.8 + (x / 1800)))))
    # splice colors for maximum hue contrast.
    colors = colors[::2] + colors[1::2]
    return colors