select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01')
EDITAR
Si esto se va a ejecutar como parte de una instrucción que devuelve varias filas o como parte de una actualización, RAND() devolvería un valor único para todo el conjunto de resultados. Para ese caso se puede utilizar RAND(CHECKSUM(NEWID())).
select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01'),
DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(CHECKSUM(NEWID())), 0), '1950-01-01')
from master..spt_values where type = 'P'