I don't know if those "const" construct actually works in Delphi (or if they just refer to C or some other language). Or maybe they are just a "would be nice" hope....
But using "const" for the described concept is wrong. Well, ironically, in the history of Pascal it seems the perfect fit....
That is, in Pascal, "const" is already be used for variables (typed constant). At least with some modes... So lets add more non-constant declarations to that keyword, it is already messed up.
Anyway, a constant is a value that does not change.
A variable that can be assigned once (as initialization) each time the surrounding function/scope is entered, and then not be changed, that is called immutable. Mixing it with "const", IMHO just is confusing.
Given that according to the description, it appears that the Warfley meant an immutable value in "const a := random", then that would make me think that the array def would not work, based on that "a" is not a constant.
In the same way, as you can't do
program Project1;
const a: integer = 10;
type b = array[0..a] of byte; // error
because "a" isn't a constant.