scaleTable = { {0.06, 0.10}, {0.11, 0.18}, {0.16, 0.26}, {0.21, 0.32}, {0.26, 0.38}, {0.31, 0.44}, {0.36, 0.50}, {0.41, 0.54}, {0.46, 0.58}, {0.51, 0.62}, {0.56, 0.66}, {0.61, 0.70}, {0.66, 0.74}, {0.71, 0.78}, {0.76, 0.82}, {0.81, 0.86}, {0.86, 0.90}, {0.91, 0.94}, {0.96, 0.98}, {1.01, 1.00} } function rescale (price) if price < 0 or price > 1 then return "Out of range!" end for k, v in pairs(scaleTable) do if price < v[1] then return v[2] end end end math.randomseed(os.time()) for i = 1, 5 do rnd = math.random() print("Random value:", rnd) print("Adjusted price:", rescale(rnd)) print() end