Instantiate a prefab as a child of an existing object?

Hey everyone! I’m working a 3D VR escape the room game. The player goes through the room opening drawers to find the randomly spawned objects. The objects have to be parented to the animated drawers for everything to work correctly. I wrote some code to randomly spawn the items in one of three locations from an array of spawn points, but I don’t know how to spawn them as children of the drawers.
Any help you can offer is greatly appreciated!
Thank you!
Here’s my code:

public Transform[] wrenchPoints;
public Transform[] hammerPoints;
public Transform[] knifePoints;

public GameObject wrench;
public GameObject hammer;
public GameObject knife;

// Use this for initialization
void Start () {
	SpawnHammer ();
	SpawnWrench ();
	SpawnKnife ();


// Update is called once per frame
void Update () {


void SpawnHammer()
	Debug.Log ("Spawning Hammer");
	int hammerSpawnIndex = Random.Range (0, hammerPoints.Length);
	Instantiate (hammer, hammerPoints [hammerSpawnIndex].position, hammerPoints [hammerSpawnIndex].rotation);

void SpawnWrench()
	Debug.Log ("Spawning Wrench");
	int wrenchSpawnIndex = Random.Range (0, wrenchPoints.Length);
	Instantiate (wrench, wrenchPoints [wrenchSpawnIndex].position, wrenchPoints [wrenchSpawnIndex].rotation);

void SpawnKnife()
	Debug.Log ("Spawning Knife");
	int knifeSpawnIndex = Random.Range (0, knifePoints.Length);
	Instantiate (knife, knifePoints [knifeSpawnIndex].position, wrenchPoints [knifeSpawnIndex].rotation);

You should use transform.SetParent :-

GameObject knife;
GameObject drawerGO;

knife.transform.SetParent(drawerGO.transform, false);

If you use true for the 2nd parameter the childed object will keep it’s current world position, otherwise it will be positioned relative to the new parent, based on the prefab local position value.