First off, 100 is not divisible by 15 so this answer will go up to 105 instead. 
Start by creating a matrix of integers 1:105 with 105/15 rows. Then we simply sample one column for each row.  This way we get a random value from each of our ranges without using a loop.
## set up
n <- 105
m <- matrix(1:n, nrow=n/15, byrow=TRUE)
## execute
m[cbind(1:nrow(m), sample(ncol(m), nrow(m)))]
# [1]   5  23  33  51  74  77 103
Here we can see a run of 10 replications.  Each column is one sample.
replicate(10, m[cbind(seq(nrow(m)), sample(ncol(m), nrow(m)))])
#      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,]    4   11   10    3    8    5   14   11    5    15
# [2,]   20   20   17   23   25   25   24   19   23    19
# [3,]   45   34   42   35   35   42   32   38   39    44
# [4,]   55   54   49   55   54   46   53   60   47    46
# [5,]   67   73   61   62   75   66   67   62   61    69
# [6,]   83   83   78   79   77   89   79   87   87    86
# [7,]   91  102   95  104   96   94   93   95  100    97