I think we can go for heap sort in this case as its complexity is nlogn for both worst and best case scenario.
Given that numbers are randomly generated quick sort may achieve its worst case of n^2 i.e. when most of the numbers are already sorted.
But on other side heap sort is not going to be hampered by already sorted numbers and going to give nlogn each time which is also the best case complexity of quick sort.