People can spend their money on whatever they want to, it's not your decision or anyone else's.
It's a huge waste of money, but it's not your money.
I mean, I'd be cheap even if I was rich, just less cheap.
A lot of celebrities do donate money.
And most importantly, have you ever met a homeless person? Some of them are just downright leeches, who don't want to work or are just super irresponsible, and they get others to give them stuff for free... Well, the able-minded and bodied people shouldn't be enabled by strangers that pity them to be such bums.
If I was rich, I'd attempt to employ them, because that's helping them more than handouts, but if they were irresponsible with their chance to put their life together, I'd have to boot them out and leave them to the mercy of food shelters and gullible strangers. But anyone who is willing to work, it would be lovely if they had the opportunity.
I do personally know someone, who I care about, who was homeless, and I hope he does get his life more together, but he won't if he keeps mooching, thinking he's too good to work and getting high on cough syrup and getting drunk with money his dad gave him to get a hotel so he wouldn't freeze to death.
It's a better idea to help people who will make something of it, and help people who really need it, like kids in undeveloped nations who need food or water or education.
Anyway, people get to decide what to do with their money, especially if they worked hard for it, and no one else has a right to that money. Also, everyone gets to decide what their ethics are, it's a personal thing. If you force someone to give money to charity, it's taking their right to their money and choice and individual ethics away. That is also unethical.