Help with wander behaviour

Hello all
I’m trying to implement a simple wander algorithm, the goal it that it should return a Vector to its new goal every frame (target - agent)
I have something that works kind of, but its very jittery and seems to prefer one direction a lot so it almost goes in a circle all the time. What im after is this: Wander steering behavior

Current code:

private float jitter = 0.1f;
private float radius = 2;
private float length = 1;

Vector3 testVector = new Vector3(((UnityEngine.Random.value * 2) - 1) * jitter, 0, ((UnityEngine.Random.value * 2) - 1) * jitter);	
testVector.Normalize();
testVector *= radius;
testVector.x += length;
		
return (myAnimal.animalHand.transform.TransformPoint(testVector) - myAnimal.animalHand.transform.position);

Reference code from the book:

double m_dWanderRadius;
double m_dWanderDistance;
double m_dWanderJitter;

SVector2D SteeringBehaviors::Wander()
{
//first, add a small random vector to the target’s position (Rando
//returns a value between -1 and 1)
m_vWanderTarget += SVector2D(RandomClamped() * m_dWanderJitter,
RandomClamped() * m_dWanderJitter);
//reproject this new vector bac
m_vWanderTarget.Normalize();
//increase the length of the vector to the same as the radius
//of the wander circle
m_vWanderTarget *= m_dWanderRadius;
//move the target into a position WanderDist in front of the agent
SVector2D targetLocal = m_vWanderTarget + SVector2D(m_dWanderDistance, 0);
//project the target into world space
SVector2D targetWorld = PointToWorldSpace(targetLocal,
m_pVehicle->Heading(),
m_pVehicle->Side(),
m_pVehicle->Pos());
//and steer toward it
return targetWorld - m_pVehicle->Pos();
}

Anyone have any idea?