The array is technically only being created and seeded one time at this point
Technically yes, but once every 150 milliseconds because of your delay statement.
Loop runs continuously (at the end it starts again). Every time through the array is remade on the stack. If you happen to be pressing the button at the time it will put random numbers in the array, which then disappears and is remade again (with what is on the stack at the time). It may be that you have some of the data from before, but you may not.
When you press the second switch you print what is in the array, which could be rubbish. One easy way to check is to print the random numbers as they are put into the array.
Another is to put the array as a global variable so it remains in scope between calls to loop().