I love participating in charity runs but only for the t-shirts. I don't bother collecting donations for them.
Are you seriously that into t-shirts? Have you thought about doing charity just to be a good person?
No, I might feel a little bad about it cause it is a little selfish
I can understand the incentive to wanting to participate in charity events for the rewards. But, it's selfish to only prioritize the rewards without wanting to help the charity, you should try to find a charity you are actually invested in and want to help out at. Continuing to take advantage of charities for the rewards can result in people looking down on you.
I can rationalize it in my head by saying that I'm helping charities out just by running in their race, and that I'm fine with it.
At least think about making a personal donation to the charity. They put a lot of effort into these events, because they need funds to continue operating. You should really consider being more supportive of their cause.