There are a number of places you can buy your domain.
Cloudflare also can help you buy a domain, but only limited to certain TLD (e.g. .com, .io). If you'd like more option, I usually purchase from Namecheap. In this step we will proceed with Namecheap.

(click image to enlarge)
Choosing Namecheap also help you understand how to configure a custom nameserver.
- Head over to Namecheap
- Find any cheap domain, I would suggest to buy one for your very first landing page as a portfolio.
- Done!
Once you've purchased, you might be confuse what to do next.
If you click Manage on the Namecheap Dashboard, for your domain you've just bought, you can see there's a column for Nameservers.
Just take note of it, we will first go to Cloudflare again.