Es kommt darauf an, was du unter teuer und was unter "billig" verstehst. Erstmal vorweg: "billig" bedeutet schon, das es schlechte Qualität ist. "Günstig" ist das Wort, was du in diesem Zusammenhang verwenden solltest, sonst wäre die Frage ja sinnlos, weil du sie dir selbst beantwortest. ;)
Nun zur Beantwortung deiner Frage:
"Syoss" Haarfarben sind nicht zu empfehlen! Die sind zwar relativ günstig, erzielen in den meisten Fällen aber ein absolut falsches Färbeergebnis und schädigen das Haar.
"Garnier" ist zu empfehlen, die Färbeergebnisse sind meistens gut. Allerdings ist Garnier dafür bekannt die grausamsten Tierversuche zu machen - ich ringe da immer mit meinem Gewissen.
"Loreal" gehört bei Budni und Co. zum teureren Segment, ist meines Erachtens aber nicht empfehlenswert. Für den Preis ist die Leistung zu schwach, bzw. unbefriedigend.
Eine vegane Methode bietet "Directions", allerdings sind das nur Tönungen. Aber eben ohne Tierversuche.
Mit den ganz teuren Farben aus dem Friseurbedarf habe ich bisher noch nicht so viele Erfahrungen gemacht, was das Selbstfärben angeht. Aber sicher sind das die besten Farben, die bei fachgerechter Anwendung perfekte Ergebnise erzielen. Dafür muss man aber zu einem guten Friseur. Die Absoluten Profis sind bei Sassoon. (Eigene Erfahrung - ich war dort ein paar mal Haarmodel.)