Can you tell us what’s going wrong? What behaviour do you intend to achieve?
Your function looks OK.
However I have some suggestions to make it slightly better:
Make your input parameter const, as well as your function (you’re not affecting it’s values or members). Then you could also make it BlueprintPure, so that it doesn’t require an execution pin.
Like this:
UFUNCTION(BlueprintCallable, BlueprintPure, meta = (Category = ItemGeneration, OverrideNativeName = RandomLocation))
void RandomLocation(const TArray<FTransform>& Available, FTransform& Location) const;