Ayn Rand talked a lot about selfishness and how that is good for everybody. Corruption is a direct consequence of selfishness. See Corruption and Capitalism.
How do you define selfishness? As much as I think about it, it sort of boils down to being logical or making the best possible choice for yourself, both of which are incomplete definitions.
Example: Say, I am a doctor. I need to catch a flight. The only taxi ready to go to the airport is charging me 10X the regular price.
By conventional thinking the taxi driver is selfish. But so am I, because that is the logical and best possible choice I have. Once I pay 10X the price and I understand the virtue of selfishness, I will also start charging my patients 10X the price when I know they don't have a choice. Yet again, patients are selfish as they are being logical and making the best possible choice and so am I.
What we have done here is that by being selfish, people start screwing each other when they know the other person doesn't have a choice. Banks do it, Oil companies do it, Facebook, Apple, Google, Microsoft, IBM, Cisco, Oracle do it. Someday the pharmacy will do it, airlines will do it, your maid will do it, your wife will do it, your children will do it..everyone will do it.
So what we get is a screwed up society to live in by being selfish. But if I did think this through and felt that if I start screwing people, eventually I will end up in a screwed up society which I don't want, I might stop screwing people when they don't have choice. Now this again is a selfish choice to make.
This is my problem with selfishness. What you do by being selfish could be anything and is just limited by your own ability to think and decide for yourself. Being selfish is good if and only if everyone has same IQ.