You re-sort the part of the array starting at $a after resampling $a. What if $a is higher after resampling? It would have to be inserted somewhere before the part you want to re-sort. Instead of sorting the complete array just because one element changes you could just find out where the resampled element has to go and use splice to extract and insert it at the new place
Even better: Don't sort at all, resample until all $b's are unique and then do just one sort.