Hace poco necesitaba generar fechas (con horas) aleatoriamente para un campo recién creado en una tabla de mySQL, y necesitaba generar fechas que estuvieran dentro de un rango determinado, encontré esta solución la cual solo necesitamos ingresar la fecha de inicio y la fecha final en formato UNIX TimeStamp, esto lo pueden hacer en la siguiente página: http://www.onlineconversion.com/unix_time.htm
SELECT FROM_UNIXTIME(ROUND((RAND() * (1464825601 – 1420070401) + 1420070401)));
El primer número es la fecha FINAL y los otros dos son la fecha INICIAL, con esto se generarán fechas aleatorias entre ese rango.
Espero sea de utilidad.