Ok - just in case anyone is interested in my version of an answer. Using the following reference got me to my goal of constraining the Weibull result set:
The following links were also handy:
http://en.wikipedia.org/wiki/Weibull_distribution
http://mathworld.wolfram.com/WeibullDistribution.html
In the end my roughed in node,js code looks like this:
var desiredMin = 1; //the desired minimum random result
var desiredMax = 50; //the desired maximum random result
var scale = 1; //Weibul scale parameter (1 provides an inverse result set)
var shape = 10; //Weibul shape parameter (how skewed the result set is)
//given an possible random range of {0,1} value calculate the minimum and maximum Weibull distribution values given current shape and scale parameters
var weibullMin = Math.pow((shape*scale), (-1*shape)) * Math.pow(.000001, shape -1) * Math.exp(Math.pow((.000001/scale), shape));
var weibullMax = Math.pow((shape*scale), (-1*shape)) * Math.pow(.999999, shape -1) * Math.exp(Math.pow((.999999/scale), shape));
//simulate 1000 random weibull values and write results to file
fileStream.once('open', function(fd) {
for(var i = 1; i <= 1000; i++) {
var r = Math.random();
var weibullRandom = Math.pow((shape*scale), (-1*shape)) * Math.pow(r, shape-1) * Math.exp(Math.pow((r/scale), shape)); //generate Weibull random value
var weibullRandomAdjusted = desiredMin + (desiredMax - desiredMin)*((weibullRandom-weibullMin) / (weibullMax - weibullMin)); //adjust Weibull random value so that it constrained into the desired min/max range
fileStream.write(weibullRandomAdjusted + "\n");
};
fileStream.end();
});
I've run the code for varying 'shape' values and it is providing me exactly the results I need.