How to Activate Random GameObjects from a list without affecting position

Hi there, I am trying to activate a random GameObject from a list, but anything I try also activates the GameObject at a random position for a random amount of time before it is deactivated.

Is there any way to activate a random GameObject from a list without affecting the position?

This is what my original code looks like before trying to randomize activation.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class poollist : MonoBehaviour {

	public float fireTime = 2f;
	public GameObject Log1;
	public GameObject Log2;
	public GameObject Log3;
	public GameObject Log4;

	public int pooledAmount = 10;
	List<GameObject> Logs= new List<GameObject> ();


	// Use this for initialization
	void Start () {
		
		for (int i = 0; i < pooledAmount; i++) {
			GameObject obj1 = (GameObject)Instantiate (Log1);
			GameObject obj2 = (GameObject)Instantiate (Log2);
			GameObject obj3 = (GameObject)Instantiate (Log3);
			GameObject obj4 = (GameObject)Instantiate (Log4);
			obj1.SetActive (false);
			obj2.SetActive (false);
			obj3.SetActive (false);
			obj4.SetActive (false);
			Logs.Add (obj1);
			Logs.Add (obj2);
			Logs.Add (obj3);
			Logs.Add (obj4);
		
		}
		InvokeRepeating ("Fire", fireTime,fireTime);
	
	}



	void Fire ()
	{

		for (int i = 0; i < Logs.Count; i++) {
			if (!Logs *.activeInHierarchy) {*

_ Logs .transform.position = transform.position;_
_ Logs .transform.rotation = transform.rotation;
Logs .SetActive (true);
* break;
}
}
}
}_

_I’ve tried changing Logs *.SetActive (true); to Logs [Random.Range(0, Logs.Count)].SetActive (true);, but it also activates the GameObject at a random position.
Yes I am new to coding, still finding my way around, and I’ve been sitting on this for too long.
Any help will be greatly appreciated, if my question or code is too vague I’d be happy to clear it up. Thanks._

I think the problem is that you’re setting the position and rotation of one gameobject, but activating a different one. Try changing your Fire method to this:

void Fire(){
        int randomIndex = Random.Range(0, Logs.Count);
        Logs[randomIndex].transform.position = transform.position;
        Logs[randomIndex].transform.rotation = transform.rotation;
        Logs[randomIndex].SetActive(true);
        Logs.RemoveAt(randomIndex);
    }