They could be made to work, although considering you're already assigning the value of the item to a variable... I certainly don't see why you'd want to take that approach. Also... the mathematical functions assume that what you're giving them is what you want to calculate so "Lowest" + "Highest" would try to directly add the text "Lowest" to the text "Highest", as opposed to going so far as to looking up the value of the element with the same id. All in all, when passed a string, the plus sign works as a concatenation of two strings, resulting in the string of "LowestHighest" in the end. If you want to reference IDs, you'd be doing something like:
Code:
document.getElementById("Lowest").value + document.getElementById("Highest")
As you can see, there really isn't much point in doing that, and it's much easier to use the variables you assign earlier:
Code:
var numValue1 = document.getElementById("Lowest");
var myText = numValue1.value;
var LowestButton = Number(myText);
var numValue2 = document.getElementById("Highest");
var myText = numValue2.value;
var Highest = Number(myText);
var realNumber = (Math.ceil(Math.random()*(Highest+LowestButton)));
Now, in this case, you're clearly not passing a string (due to lack of quotes), but a variable and JS goes deeper and looks up the value of that variable (Which can also be a string, but in this case is not) A good reading on the subject of operators versus variable types could probably be found here:
http://www.w3schools.com/js/js_operators.asp