$arreglo es una variable global. Para usarla dentro de tu funcion necesitas declararla como en seguida, o pasarla en los argumentos de la funcion cada vez:
Código PHP:
function generaNumeros($i,$tope,$inicio,$fin,$suma) {
global $arreglo;
No es por criticar, pero ni las globales ni las funciones recursivas (excepto tal vez en LISP o Scheme) son del todo "cool", espero que tengas una buena razon para usarlas =)