I agree with Emily in #17 that business transactions are a different case. The cashier is required to say thank you to all customers, but it's not really personal thanks for anything you did or said, it's just a general expression of appreciation for your business. I wouldn't say any answer at all is required; a nod or a smile is enough.
But many people just say 'Thank you' (or in BE 'Cheers') back to the cashier, as an equally formulaic expression of appreciation for her doing her job, for handing you your change and your receipt. That's surely the most common. As tinear says in #23, 'You too' is also good, but 'Thank you too' is a little too much.
'You're welcome' isn't wrong, but it sounds a little over the top to me, because shopping isn't something you gladly do as a favor to the supermarket employees. They're not actually welcome to the money you pay, it's just a required financial transaction.
But whenever someone thanks you for a true favor, something you're not required to do, then of course 'You're welcome' is absolutely the right thing to say. It's polite, but it's never too formal. You do something nice (give someone something, give up your seat, carry something, open a door), the other person says thank you, you say 'You're welcome.' No other choice, really, except to add another word or two: 'Oh, you're very welcome / quite welcome.'
'Not at all' isn't wrong, but it's also not all that common. To my ears it sounds somewhat British and rather dated. 'Don't mention it' is very similar, maybe a shade less formal.
When someone thanks you for something that you really did enjoy, you can say 'Thank you' or add 'Oh, it was a/my pleasure,' 'Happy to be able to help,' 'I'm glad we were able to do this / I'm glad it worked out,' etc.
You can also use a full sentence, like 'Oh, it was no problem / really no trouble at all.' But to my ears, it's not a good idea to shorten that to just 'No problem' (or 'No prob') alone, unless the other person is someone you would say 'Du' to. To an older person or a stranger, or in a more formal context, 'No problem' can easily sound flapsig, as if you're too lazy to say 'You're welcome,' or as if you really do grudge the trouble. It can sound warmer if you say it in a friendlier tone, with a smile and your voice rising, but young people don't always make that effort.
'No worries' sounds Australian to me, and otherwise about as casual as 'No problem.'
'Sure thing' or 'Any time' are also very casual. Most of the other 'B. Less formal' suggestions in #9 are things I wouldn't really say.
'That's okay' or 'That's all right' doesn't sound quite right to me in this context. Usually you say that after someone has said 'I'm sorry' or 'Excuse me.' You can also say 'No problem' then.
'All right' (two words) doesn't sound quite right in this context either. Usually you use it like 'Okay,' when you agree to do something, or when someone asks you how things are going.