Pairs and “nothing” function identically from what I know. ipairs is better for tables with numeral indices (arrays) as it is more efficient but only works with said arrays.
In this case ipairs would be the best choice since GetChildren returns an array.
in should be used now, is more performant than both pairs/ipairs. I performed a test to see which one manages to do more iterations, and in was the way to go. The difference is not so big but considering in iterates in order for arrays (table), then it’s a good choice to stop using pairs/ipairs. You can use ipairs when you want the iteration to stop once it meets a nil a value in the array (table), which in my opinion is not desired most of the time.