Instantiation from class

i keep getting NullReferenceException but i can’t really understand where the problem is
these are the scripts i’m using:

using UnityEngine;
using System.Collections;

[System.Serializable]
public class SomeClass {
	public GameObject[] objects;
	public SomeClass() {}
	public GameObject GetRandomGameObject() {
		return objects[Random.Range(0, objects.Length)];
	}
}
[System.Serializable]
public class SomeClassContainer{
	public SomeClass[] types;
	public SomeClassContainer() {}
	public GameObject PickRandomType(string x) {
		if (x == "top") {
			return types[6].GetRandomGameObject ();
		} 
		return null;
	}
}
[System.Serializable]
public class ArrayManager : MonoBehaviour {

	public SomeClassContainer blue;
	public SomeClassContainer red;
	public SomeClassContainer yellow;

	public SomeClassContainer GetBlue() {return null;}
	public SomeClassContainer GetRed() {return null;}
	public SomeClassContainer GetYellow() {return null;}
}

and here i call the class method to instantiate the random object:
using UnityEngine;
using System.Collections;

public class Spawn : MonoBehaviour {
	
	public GameObject currentObject;
	public Vector3 attachPosition;
	private string x = "top";
	GameObject randomObject;

	// Use this for initialization
	void Start () {
	    Check ();
	}
	
	// Update is called once per frame
	void Update () {
	}
	void Check(){
		ArrayManager am = GameObject.FindGameObjectWithTag("PiecesManager").GetComponent<ArrayManager>();
		attachPosition = currentObject.transform.FindChild ("attach").transform.position;
		if (currentObject.GetComponent<check> ().top == true) {
			randomObject = am.GetBlue().PickRandomType(x); //here i get the error
			Instantiate(randomObject, attachPosition, randomObject.transform.rotation);
		}
	}
}

i hope you can help me

You say that line 20 in the second script has the problem. So, it’s possible that am is null, meaning the FindGameObjectWithTag() fails to find a GO. (You don’t check this in your code.) Alternatively, you call a GetBlue() function. Which is programmed to return null. You then call a PickRandomType() function on this null value. So this line is pretty much designed to cause a problem.