I actually did come up with a house rule way to handle "Deal the 3 targets with the highest HP" and similar cases in a manner similar to the way "Deal up to 3 targets" without creating non-intuitive results.
Problem: If each target is chosen seperately, then when the damage dealt changes the HP order of the targets, it becomes possible to skip dealing damage to the highest HP target.
Example: "Deal the 3 targets with the highest HP 2 damage" when the targets are at A(22), B(19), C(18), & D(17). Barring schenanigans caused by reacting triggers, A,B,&C should take damage, D should not. But if targets are chosen sequentially, then if C is chosen as the first target, then it will drop below D, moving D into the "top 3". You could then choose D and then B, and A would not take damage. Clearly, this is flawed.
Solution: I can't think of a good way to word this in general, so I'll word it for the specfic example shown above. The first shot can target any of the first 3. Now there are only two shots left, so the 2nd shot can target any of the first 2, excluding any previously targeted targets, and the 3rd shot must target the highest not-yet-previously targeted target.
Example: Scenario above: C is chosen first. Now the order is A,B,D,C. The second shot can only target A or B. Whichever is targeted, the other must be the last target. If A was chosen first, the order is now A,B,C,D, but A's been chosen, so the next target must be one of the top two of B,C,D. Either way, it still will achieve the expected result.
I haven't heavily tested this method with schenanigans, but I do think that it will behave intuitively in most cases (i.e. You won't be able to leave the highest HP target untouched unless it takes damage from some other source in the middle of the damage or a new target replaces it as highest HP, etc)
It's obviously not the offical way that the targets are chosen, but if you prefer it to the offical version, feel free to use it as a house rule.