How to get random records in SQL Server based on Where Clause
Syntax
Select Top [No. of Random Records you want] 
 from
 (
  Select  Col1, Col2   
  from ActualTableName
  where
   Col1 Like '%SearchWord%'
 ) VirtualTable
 ORDER BY NEWID()
Note: VirtualTable is table that doesn't exist in database, it is just a placeholder name.
Example
Select Top 1 *
 from
 (
  Select QuestionId, QuestionTitle
  from ForumQuestion 
  Where   
   ForumQuestion.QuestionTitle Like @SearchKeyword 
 ) MyTable
 ORDER BY NEWID()