Ok, may you can apply similarly in your case.
Since I do not have the following two lines.
File file = new File('...\\Test_Data\\ChangeId.txt')
context.changeIds = file.readLines()
Assuming a static list in place of that in the example, this script can be kept in setup script of test case level (similar to test suite level)
def changeIds = ['item1','item2','item3']//can be replaced with file.readLines() code in your case.
def changeIdsCount = changeIds.size()
def newValue = changeIds[(int)Math.random()*changeIdsCount]
testCase.setPropertyValue('DYNAMIC_ID',newValue)
And in the test case use
${#TestCase#DYNAMIC_ID}