Recover Destroyed array objects.. HELP

I’ve searched a lot in internet and nothing can help me so i made this post.

This is the problem… I have an array of game objects and i have a player. When player is on trigger i will destroy one of the objects in array. BUT when i destroy that object it gets missing in the inspector. Btw that array objects are in prefab. And i want this prefabs
to use till the game ends.

And by the way it causes Null Reference error

here’s my code

            if(dist_manager.GetComponent<DistanceCalc>().dist <= 4000)
			{
                //The line below means if the parent of this object is instantiated it destroy the last prefab that instantiated.
				Destroy(GameObject.Find("Ring"));

				//Array Index
				rand_obj = Random.Range(0,(selectorArr.Length - 1));

				//Instantiate Rings
				
				this.selectorArr[rand_obj] = Instantiate(selectorArr[rand_obj]) as GameObject;
				selectorArr[rand_obj].transform.parent = this.transform.parent;
				selectorArr[rand_obj].transform.localPosition = new Vector3(0.0f , 0.0f , 50.0f);
				selectorArr[rand_obj].name = "Ring";
				
				
			}

Sorry for bad english. TIA!!

You are assigning objects back to the array as you Instantiate them. This is breaking your prefab links. Instead do

GameObject clone = Instantiate(selectorArr[rand_obj]) as GameObject;
clone.transform.parent = this.transform.parent;
clone.transform.localPosition = new Vector3(0.0f , 0.0f , 50.0f);
clone.name = "Ring";