Typically bootstrapping a list of a few thousand nodes with top uptime is a good starting point, then using peer exchange between the nodes to find more, store them and prefer them when possible. Bittorrent DHT could also be (ab)used as a discovery mechanism.
It's too easy to block those few thousand nodes and render the entire software useless. If I would start Tor on my PC, it won't connect to any nodes, because all bootstrap hosts are blocked by my provider. It's centralization with all related drawbacks.
Not really - those few thousand nodes are only used for the initial bootstrap, once you've connected to the network or can get a node list from a friend once, you'll have more than that. And it's very hard to act legally against thousands of nodes instead of a single entity. Or to convince ISPs to block them all. Definitely an improvement over a centralized system. Some services will try to improve this further by only sending random nodes to each person who downloads, using the hash of their IP as an rng seed.
Yes, an ISP who's willing to block a few thousand nodes will be able to take your shit down no matter what. That's why Tor uses private "bridge" servers for people in highly censored countries and tries to mask traffic as some other type. There's no way around that. But that doesn't mean decentralization is useless - it's incredibly useful in most countries and with most ISPs.
If you need to scan IPv4 space randomly to find a node, you can easily find all nodes. This takes about a day or two on a cheap VPS.