Servo Randomizer with ease problems...

Hello everyone.

I am very new to programming and I am doing my best here, so forgive me if this is sub-standard work. Here is my issue. I am trying to set a random value for a servo, then use an ease function to chase the random value with the servo position. When the servo position value is reached, set a new random position, and lather, rinse, repeat. I have tried about four thousand variations of this and keep getting the serial port reporting lots of zeros. Does anyone see what I am doing wrong? I suspect that I will need to eventually define a zone as being close enough to the number to be seen as that number so the division doesn’t go on infinitely, but I would be happy right now seeing some of the values change as they get closer to the servo position asked for by the random number.

Here is the code.

#include <Servo.h> 


Servo servo1;
float spd = 2;
float ran = random(0,180);
float ease;
float current;
float noopos;


void setup()
{
servo1.attach(2);
Serial.begin(9600);
}

void loop()
{
if (servo1.read() != ran)
{
  ease=(ran/spd);
  current = servo1.read();
  noopos = (ease - current);
  servo1.write(noopos);
  delay(10);
}

else 
{
    ran = random(0,180);
}
}

Hopefully someone will have some insight. I tried using the delay function to reduce the speed of the servo, but it was choppy and ugly, so I am hoping this is a better way to get the results I am looking for. Thanks in advance for any information/insight on this problem.

Peace,

Gumby