I want to do Airdrop for my tokens and plan to distribute my tokens to 50,000 random Ethereum addresses. How do I get the 50k Ethereum addresses. How do the very well known Tokens airdrops manage to generate such a large list of Ethereum addresses?
There are many different ways for you to generate this kind of information and it will entirely depend on the qualifying factors. If you want to take XX top holders of Y Token and use that as your list, you can go to the EOS token for example, and take the top holders as listed here (https://etherscan.io/token/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0#balances), Or you could take the latest people to transfer tokens as according to (https://etherscan.io/tokentxns). Often times however, people will require some sort of entry qualification, whether it be a google forms, or twitter post in order to qualify for your airdrop There is no "right way" to collect this type of information and will ultimately depend on what you want to be the entry requirement.
Keep in mind though, depending on how you did your airdrop increasing the number of recipients will drastically increase the fees you have to pay for your airdrop. I have written a contract which can do airdrops for extremely cheap, using a modified payment channels concept:
Follow these simple steps:
get all the blocks
from each block get all the transactions
select transactions with a value > 0 (for working wallets if they have balance)
generate the list of all the to addresses
remove duplicate address
Note: you have to execute these steps for a week or two to get meaningful results.