"Good" and "bad" is going to be really subjective for this play. For example, Bassanio is not generally portrayed as a "bad" guy, but a case could be made for it. He's bad with money, puts Antonio in a horrible financial situation, and is likely marrying Portia because she is rich and good-looking.
"In Belmont is a lady richly left, / And she is fair"
I think Bassanio is a bad guy for those reasons. I wouldn't like to be his friend anyway.
I could claim the same thing about Portia, too. I'm really glad that she saved Antonio from Shylock's "pound of flesh" thing. But I just can't shake the feeling that she enjoys stringing Antonio and Shylock along the entire time. Shylock eventually agrees to not take the pound of flesh and pay the money instead. Portia could have been okay with that, but she wanted to see Shylock punished to the exact letter of the law that he wanted enforced so badly. So she has Shylock stripped of most of his property and wealth. It's just mean, especially since in that same act she asked Shylock to show mercy. I don't get it. She clearly didn't show mercy. Portia could definitely be a "bad" guy.
But all of the above is me being a standard English teacher and playing the devil's advocate. The first time I read the play, none of the above went through my head. I thought Antonio, Bassanio, Portia, and the rest were "good" guys, because clearly Shylock is the bad guy. How could he not be? He's a loan shark that wants a pound of flesh. That's just gross.