Random Function Script doesnt seem to work outside of editor

Hello I had taken the coding from this question Choosing random function - Questions & Answers - Unity Discussions (Eric5h5’s answer, not the long one,) and I ended up making this script out of it:

var functions = [thing1, thing2, thing3];
var ting1 : GameObject;
var ting2 : GameObject;
var ting3 : GameObject;

function Start () 
{
	functions[Random.Range(0, functions.Length)]();
}

function thing1 ()
{
	ting1.active = true;
}

function thing2 ()
{
	ting2.active = true;
}

function thing3 ()
{
	ting3.active = true;
}

It seems to work fine and when I check it in the editor it does work with no errors or notifications, however outside of the editor in the actual build it does not work at all.
I’m thinking it could be an error with converting my project with unity 5 because I remember the builds of unity 4 the script seemed to work, however I cannot recall correctly.
Is there any error with this that I’m just over looking?

I looked in to this and tried your script.

As you stated it worked in editor but not in build.

I enabled the dev console and found these errors:

50445-datacorrupt.png

Looking in to it further it quickly becomes apparent that it is an issue of Serialization.

Consequently, you can fix this by simply making your collection Private :

#pragma strict

private var functions = [Thing1, Thing2, Thing3];
 var ting1 : GameObject;
 var ting2 : GameObject;
 var ting3 : GameObject;
 
 function Start () 
 {
     functions[Random.Range(0, functions.Length)]();
	 Debug.Log(functions.Length);
 }
 
 function Thing1 ()
 {
     ting1.SetActive(true);
 }
 
 function Thing2 ()
 {
     ting2.SetActive(true);
 }
 
 function Thing3 ()
 {
     ting3.SetActive(true);
 }

Private fields don’t get Serialized.