Initialise/seed the random number generator (in this case, UnityEngine.Random.InitState) exactly once. Ideally at the start of the program.
Ask the random number generator for a new value every time you need one.
Here, you have the Random.InitState and the Random.Range in the same RNG function, so it won't work. You end up basically just asking it for the system time whenever you call it.
And you still only ever set 'n' once so the outcome of ChooseRandomly is predetermined, and chosenGameObject will always be the same.