The compiler tries to find the best matching method signature for your call and decides to use :
public static Object Instantiate(Object original, Transform parent, bool worldPositionStays);
I guess you wanted to use one of these:
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
So your code should look like this:
GameObject drop = Instantiate (Resources.Load ("wood_drop"), Spawnlocation.position, Quaternion.Euler(Random.Range(0,360),Random.Range(0,360),Random.Range(0,360))) as GameObject;
or this (if you want to set the parent):
GameObject drop = Instantiate (Resources.Load ("wood_drop"), Vector3.zero, Quaternion.Euler(Random.Range(0,360),Random.Range(0,360),Random.Range(0,360)), Spawnlocation) as GameObject;