How does bitcoin core choose which node to broadcast to? Any vulnerability? I suppose the nodes would only listen and re-broadcast new block from and to a limited subset of other nodes (assuming the block is valid).

How is this subset chosen? Does Bitcoin Core software choose them? (if one uses it)

I'm thinking if most of the nodes are listening to only the "popular" sources, then these sources would have too much power to influence what nodes will or will not hear. (Like how the media in real life affects people)

Thanks
The Bitcoin Core connected outbound nodes are chosen using a random method. The only time that they are very predictable is if nodes are manually added.