СЛУЧАЙ может принимать только литералы (без имен полей / столбцов) и первый параметр и быть ниже / равен второму. Так что на первом этапе это невозможно. Но вы можете обойти это: сгенерируйте случайный коэффициент [0; 1] и примените этот коэффициент к интервалу.
select 10 as lower_bound
,20 as upper_bound
-- ,random(lower_bound, upper_bound) -- will not work
,random(0, 1000)/1000.0000 as RND_Factor -- a random factor between 0 and 1
,(upper_bound-lower_bound)*RND_Factor+lower_bound;