That's because sorted table has different structure - there's an extra dimension.
Code:
local which = 0
table.sort(numbers)
for i=#numbers,1,-1 do
table.sort(names[numbers[i]])
for j=1,#names[numbers[i]] do
which = which +1
print("TOP",which,": "..numbers[i], names[numbers[i]][j])
end
end
Figure yourself how to stop printing.