What is "makeaccounts" and why do I have to send tokens to it?

"makeaccounts" is a contract (think of it like an application for distributed networks) that runs on EOS Mainnet. When you send tokens to that contract with the memo which has your public key and the accountname that you want, it generates a child account and auto-assigns the public key to both the Active and Owner accounts. The balance left after paying the RAM fee on the network is assigned to the account via a eosio.transfer call.

If you want this account to do it for you you can use this mechanism.

If you feel like this is not something you feel comfortable with, we suggest https://eos-account-creator.com/ which allows you to create an account via a similar mechanism but with a credit card.