The issue is when you :GetChildren() and not the table.insert. It doesn’t promise you order. I’d give each one an attribute with the order (rather than name them, but you can extract the number from the name as well though it means going through the whole string each time).
for _,v in pairs(the data table) do
table.insert(data table, v:GetAttribute("Order"), v)
end