J'utiliserais une roue des couleurs et, étant donné une position aléatoire, vous pourriez ajouter l'angle d'or (137,5 degrés).
http://en.wikipedia.org/wiki/Golden_angle
afin d'obtenir à chaque fois des couleurs différentes qui ne se chevauchent pas.
En réglant la luminosité de la roue des couleurs, vous pouvez également obtenir différentes combinaisons de couleurs claires et sombres.
J'ai trouvé cet article de blog qui explique très bien le problème et la solution en utilisant le nombre d'or.
http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
UPDATE : Je viens de trouver cette autre approche :
Elle s'appelle la méthode RYB (rouge, jaune, bleu) et est décrite dans cet article :
http://threekings.tk/mirror/ryb_TR.pdf
comme "Paint Inspired Color Compositing".
L'algorithme génère les couleurs et chaque nouvelle couleur est choisie pour maximiser sa distance euclidienne par rapport aux couleurs précédemment sélectionnées.
Vous trouverez ici une bonne implémentation en javascript :
http://afriggeri.github.com/RYB/
UPDATE 2 :
La médiathèque de Sciences Po vient de publier un outil appelé "I want Hue" qui génère des palettes de couleurs pour les scientifiques des données. Ils utilisent différents espaces de couleurs et génèrent les palettes en utilisant le clustering k-means ou les vecteurs de force (graphes de répulsion). Les résultats de ces méthodes sont très bons, ils montrent la théorie et une implémentation dans leur page web.
http://tools.medialab.sciences-po.fr/iwanthue/index.php
3 votes
Je ferais un site web qui génère une couleur aléatoire à chaque visite. Faire un vote "cette couleur est géniale" / "cette couleur est nulle". Puis trier par rapport au nombre de votes.
0 votes
Vous pourriez vérifier HSL et HSV.
53 votes
"des couleurs qui rappellent les excréments" J'adore ça.
0 votes
Ce n'est pas un algorithme.
0 votes
Je vais ajouter un commentaire puisque la question est fermée. Je n'ai pas essayé, mais il serait intéressant d'essayer une méthode fractale ou procédurale, en utilisant par exemple l'algorithme Midpoint Displacement ou des variantes ( lighthouse3d.com/opengl/terrain/index.php?mpd2 ) ou Perlin Noise, mais au lieu des hauteurs pour mélanger les composantes rgb des couleurs.
0 votes
Jetez un coup d'œil au générateur de palette de couleurs que j'ai construit et à son code source : hypejunction.github.io/color-wizard En gros, vous pouvez prendre une gamme de teintes, déterminer les étapes de luminosité qui donnent les couleurs que vous préférez et déterminer la saturation à l'aide de la formule parabolique.
0 votes
Lié - stackoverflow.com/q/1664140/104380