Will this generate psuedo random numbers efficiently?

Idea: I want it to cycle through a user defined number of numbers (n_total) for as long as it takes to reach a set criteria of numbers that are less than 0.1 (n_desire)? I divide by RAND_MAX to always get a number between 0 and 1.

I seed with time and get different results on different runs...

Comments? Ways to make it better?

Code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <time.h>

int random_num(int n_total, int n_desire);

int random_num(int n_total, int n_desire)
{
  int            i, cap; /* counter */
  double         j; /* Stores the random numbers. */

  unsigned int   iseed = (unsigned int)time(NULL);
  srand(iseed);

  cap = 0;

  while(1){
      for(i = 0; i < n_total; ++i){
/*      Generate a random number between 0 and 1. */
        j = (double)(rand()/((double)RAND_MAX + 1));

        printf ("The random number generated is %lf \n", j);

        if(j <= .1){

          printf("---> Value of random number is less than");
          printf("---> or equal .1 with value of %lf.\n", j);

          cap += 1;
          if(cap == n_desire){
//           we have the desired number of numbers we wanted.
                break;
          }
        }
      }

    if(cap == n_desire) break;

  }

  return 0;
}

int main(void){

  random_num(10, 5);

  return 0;
}