This is really a good argument for nonpartisan blanket primaries, which in other countries would be known as the first round of a two-round system. And it really should be advertised that way so people don’t just write it off as “just a primary”.
California adopts this system. You vote for one candidate in the primary. The top two candidates appear on the second round ballot. Most votes in the second round wins.
However, the fact that parties choose the candidates is really not unusual at all. In fact, the US is pretty unique in terms of how much influence voters have over the process. In most countries, interested candidates apply for the party’s nomination, and then the party’s central leadership or local party committee vets the applications and nominates their favourite candidate. Only the chosen candidate gets to stand with the party’s rosette.