The problem seems to stem from your attempt at removing a member from the array so that you may use it recursively. Unfortunately, this can't be done easily. You have to create a new array (that is smaller), and copy the members to the new array. (You may also use the System.arraycopy() method to do the copy part)
IMO, I think it is better to change the Array() method to also take a range (start and / or end indexes). This will allow the method to work on a subarray. The recursion would be done by simply changing the range -- removing the need to create more arrays.