El valor de $aleatorio va a ser un solo digito porque haces substr 0,1
Antes del mysql_fetch_array verificaria mysql_num_rows() ya que si no existe no deberia haber ninguna fila.
Si trae fila ya existe no necesitarias chequear nada mas
Si igualmente quieres chequear, yo me aseguraria de convertir ambos valores a numero, porque aleatorio, al ser creado con substr, es una cadena.
Código PHP:
if ($data['numero_pedido'] == $aleatorio - 0)
-ronnieb