In that dialog Metamask is showing addresses that were used as recipients in previous transactions.
If you previously interacted with a dapp or contract they will appear there.
It seems bad that Metamask doesn't allow to see the full address.
This is for those who might want to be clarified on the wallet/account concepts on Ethereum, thanks to @mikko-ohtamaa.
Wallets have nothing to do with the structure being used in blockchains to track down the balances or handle transactions. It is just a file containing accounts' info(public/private keys) and web3.eth.accounts.wallet
-based commands mentioned here are just to handle that.
Furthermore, Ethereum does not use the UTXO model, like the one in Bitcoin. This is a start point article about that. It uses an account-based model.
So, having a Bitcoin-like structure to handle transaction flow for centralized exchange structures is impossible to me. Instead, some may use the smart contracts to manage that. You can explore this approach for a beginning step towards that. If you are going go further, see this and this.
I am looking forward any innovative ideas/comments on the subject.
Best Answer
account is generated from public key. public key is generated from private key. private key = wallet.
so, all accounts are generated from wallets (private keys).