Heath Ledger was very good…
Javier Bardem is the best film villain of recent times IMO, especially in No Country for old men
Alan Rickman obviously…
Cristoph Waltz was brilliant as Hans Landa in Inglorious Basterds
Tom Hardy does well, especially as Charles Bronson I thought
Ben Kingsley was superb in Sexy Beast! Pretty menacing in Shutter Island too.
Kathy Bates in Misery… Scary stuff!
Cristopher Lee, possibly the all time great bad guy…? 🤷🏻♂️
Al Pacino is arguably the master of playing the bad guy when trying to seduce the audience into believing that he is the good guy.
Joe Pesci was properly deranged in Goodfellas!
Gary Oldman in Leon
Samuel L Jackson in Django Unchained (FAR more menacing than Di Caprio!)
Probably loads more worthy of a mention, but those are the ones that come to my mind straight away…