How to get random datetime of current day in SQL Server
The only way to go 'back-in-time' would be to add a negative number.  Try adding ABS to your query.

DECLARE @RandomDate datetime

DECLARE @fromDate datetime='2018-04-07'


SELECT @RandomDate= (DATEADD(day, ROUND(DATEDIFF(day, @fromDate, @fromDate) 
* RAND(CHECKSUM(NEWID())), 5),DATEADD(second, abs(CHECKSUM(NEWID())) % 86400, 
@fromDate))) 

SELECT  @RandomDate 


ABS - A mathematical function that returns the absolute (positive) value of the specified numeric expression. (ABS changes negative values to positive values. ABS has no effect on zero or positive values.)