When doing the HTML parsing, browsers don't parse JavaScript, and so they stop at the first </script> sequence they find — even if it's in a string literal, or a JavaScript comment.
To avoid it, just do anything to interrupt the </script> in your string, such as:
<script type="text/javascript">
var randomnumber=Math.floor(Math.random()*10000);
var sr = 'http://www.example.com/example.js?rnd='+randomnumber;
document.write("<script type=\"text/javascript\" src=\"" + sr + "\" id-value-test=\"100\" > <\/script>");
<!-- Change is here -----------------------------------------------------------------------------^ -->
</script>
or
<script type="text/javascript">
var randomnumber=Math.floor(Math.random()*10000);
var sr = 'http://www.example.com/example.js?rnd='+randomnumber;
document.write("<script type=\"text/javascript\" src=\"" + sr + "\" id-value-test=\"100\" > </" + "script>");
<!-- Change is here ----------------------------------------------------------------------------^ -->
</script>
"and'-document.write("<script type='text/javascript' src='" + sr + "'" id-value-test='100'> </script>");