Update: You can replace the vector of PDFValues (i.e., Part (2,1)) of the DataDistribution object returned by HistogramDistribution with a vector that has the same length and sum.
data1 = RandomVariate[NormalDistribution[], 100];
D1 = HistogramDistribution[data1];
D2 = D1;
D2[[2, 1]] = N@Total[D1["PDFValues"]]
Normalize[RandomInteger[10, {Length@D1["PDFValues"]}], Total];
D1["PDFValues"]
{0.02, 0.18, 0.38, 0.24, 0.14, 0.02, 0.02}
D2["PDFValues"]
{0.236842, 0.105263, 0.184211, 0.263158, 0.157895, 0.0526316, 0.}
Row[DiscretePlot[PDF[#, x], {x, -4, 4, .01}, ImageSize -> 300]& /@ {D1, D2}, Spacer[10]]

Through[{Mean, Median, Variance, Moment[#, 2] &}@#] & /@ {D1, D2}
{{-0.06, -0.210526, 1.44973, 1.45333},
{-0.342105, -0.142857, 2.47946, 2.59649}}
Replace Normalize[RandomInteger[10, {Length@D1["PDFValues"]}], Total] with your choice of a vector that has appropriate length and sum.
Previous version:
From Histogram >> Details:

And from HistogramList >> Details:

And mimicking the example in HistogramList >> Scope >> Height Specifications
data = RandomVariate[NormalDistribution[0, 1], 100];
accumulatedCount[bins_, counts_] := Accumulate[counts]
Row@{Histogram[data, {1}, ImageSize -> 300],
Histogram[data, {1}, accumulatedCount, ImageSize -> 300]}

we can construct custom height functions like:
foo1[bins_, counts_] := bins[[All, 1]]^2;
foo2[bins_, counts_] := Range[Length@counts];
Row@{Histogram[data, {1}, ImageSize -> 300],
Histogram[data, {1}, foo1, ImageSize -> 300],
Histogram[data, {1}, foo2, ImageSize -> 300]}

The only requirement is that the height function returns a list of length that is equal to the number of bins:
See also: this answer to a related question for an example of how to construct a custom 3D height function for Histogram3D.
HistoryListandHistoryDistribution? – bill s Apr 20 '16 at 20:02HistogramListandHistogramDistribution– highsciguy Apr 20 '16 at 20:53